(JavaScript)将forEach循环与内部回调同步
我正在forEach
像这样的双循环内进行一些计算:
array.forEach(function(element){ Object.keys(element).forEach(function(key){
/* some complex computations with asynchronous callbacks */
});
});
someFunctionHere();
有没有办法让Loop在执行someFunctionHere( )
功能之前先完成?或程序在继续执行someFunctionHere( )
…
之前知道循环是否完成的任何方式
我可能会错过一些论坛,但是我发现的那些论坛并没有帮助我实现我想要实现的目标,而且我在NodeJS中做到了这一点,同时我也在问是否有现有的图书馆可以实现这一目标。
有没有一种方法可以同步进行迭代,即仅在当前迭代完成后才继续进行下一个迭代?(非常遗憾)
谢谢你的帮助…
回答:
看一下async.js,尤其是其控制流语句,例如each
whilst
和until
。
使用async.js,您可以获得想要的东西。
在您的实际情况下,您需要的是each
函数(以前称为forEach
),eachSeries
或者不是并行运行单个迭代,而是串行运行的函数(有关详细信息,请参见eachSeries的文档)。
举个例子:
async.eachSeries([ 2, 3, 5, 7, 11 ], function (prime, callback) { console.log(prime);
callback(); // Alternatively: callback(new Error());
}, function (err) {
if (err) { throw err; }
console.log('Well done :-)!');
});
这将遍历素数数组,并以正确的顺序依次打印,最后打印出来Well done :-)!
。
以上是 (JavaScript)将forEach循环与内部回调同步 的全部内容, 来源链接: utcz.com/qa/429142.html