If you wait for them all before doing any writing, then there's no point in appending each time.

I think maybe the problem is that you should use Q.all() instead of Q.allSettled().