首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript,Node.js: Array.forEach是异步的吗?

JavaScript,Node.js: Array.forEach是异步的吗?
EN

Stack Overflow用户
提问于 2011-02-19 18:36:48
回答 8查看 323.9K关注 0票数 420

关于JavaScript的原生Array.forEach实现,我有一个问题:它的行为是异步的吗?例如,如果我调用:

代码语言:javascript
复制
[many many elements].forEach(function () {lots of work to do})

这是否是非阻塞的?

EN

回答 8

Stack Overflow用户

发布于 2012-02-27 11:00:08

如果你需要一个异步友好的Array.forEach或类似的版本,可以在Node.js 'async‘模块中找到:http://github.com/caolan/async ...as这个模块也可以在浏览器中使用。

代码语言:javascript
复制
async.each(openFiles, saveFile, function(err){
    // if any of the saves produced an error, err would equal that error
});
票数 83
EN

Stack Overflow用户

发布于 2011-02-25 08:01:03

Array.forEach是为无需等待的计算而设计的,在事件循环中进行异步计算没有任何好处(如果您需要多核计算,webworkers会添加多处理)。如果您希望等待多个任务结束,请使用计数器,您可以将其包装在信号量类中。

票数 6
EN

Stack Overflow用户

发布于 2014-06-22 04:18:28

这是一个简短的异步函数,无需第三方库即可使用

代码语言:javascript
复制
Array.prototype.each = function (iterator, callback) {
    var iterate = function () {
            pointer++;
            if (pointer >= this.length) {
                callback();
                return;
            }
            iterator.call(iterator, this[pointer], iterate, pointer);
    }.bind(this),
        pointer = -1;
    iterate(this);
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5050265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档