should this code return 12334 or 12433 ?
I expect 12334 but it gives 12433...
console.log '1'
anArray.forEach (info, index, array)->
console.log '2'
await model.findOne info, defer(err, doc)
console.log '3'
console.log '4'
should this code return 12334 or 12433 ?
I expect 12334 but it gives 12433...
console.log '1'
anArray.forEach (info, index, array)->
console.log '2'
await model.findOne info, defer(err, doc)
console.log '3'
console.log '4'
Copyright © 2021 Jogjafile Inc.
Your intuition is incorrect: IcedCoffeeScript's
await...defercannot block a synchronousforEachloop.Remember that IcedCoffeeScript compiles to JavaScript, which does not support blocking. Once you've called
forEachon an array, you've committed to iterating through that entire array before any events can fire.The good news is that you can get the behavior you want by using IcedCoffeeScript's own loop constructs. In your case,
For more information on dealing with JavaScript's non-blocking event model, check out my new book, Async JavaScript.