I have an ids
object, which maps id
strings to product
objects.
for id of ids
product = ids[id]
console.log product #
Bergi's code is misleading IMO since it runs the whole loop at once, not sequentially. For that reason I would just lift all the code to work in promises instead of mixing sync and async:
Promise.resolve(product for _, product of ids).then next = (products) ->
[product, products...] = products
if product
console.log product
Product.create(product).then ->
console.log product
next products
.then ->
console.log "all done"
The difference is:
then ->
runs only after the loop has completed completelyThese properties of a real loop are much more important than superficial syntax which you can learn in a couple of days.
Let it run and look at the difference in the logs.