(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

whilstuntil

使用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

回到顶部