Sunday, April 8, 2012

Javascript, NodeJS: is Array.forEach asynchronous?



I have a question regarding the native Array.forEach implementation of Javascript: Does it behave asynchronously? For example, if I call:







[many many elements].forEach(function () {lots of work to do})







Will this be non-blocking?



Source: Tips4all

2 comments:

  1. Array.forEach is meant for computing stuff not waiting, and there is nothing to be gained making computations asynchronous in an event loop (webworkers add multiprocessing, if you need multi-core computation). If you want to wait for multiple tasks to end, use a counter, which you can wrap in a semaphore class.

    ReplyDelete
  2. If you need an asynchronous-friendly version of Array.forEach and similar, they're available in the Node.js 'async' module: http://github.com/caolan/async ...as a bonus this module also works in the browser.

    ReplyDelete