Javascript,NodeJS:在循环中调用异步方法并返回结果



是否有一种方法可以在循环中调用异步方法,将所有结果放入数组中&最后返回结果。

我想做的伪代码:

methodThatRunsAsync(callback){
  once completes, invoke callback;
}

另一个method(){
变量结果= [];
for(i = 1; i = 10; i ){

 methodThatRunsAsync(function(resp){
    result.push(resp);
 });
return result;    }

}

但是结果的值始终是默认值。如何将异步块的结果捕获在同步块中并返回给呼叫者。

研究承诺框架,但发现很难让我围绕它。如果有人可以帮助我了解如何实现这一目标,那么psoudo代码也将很棒。

否,您无法返回结果,作为异步的调用。也使用该功能回调,并在添加最后结果时调用它:

function anotherMethod (callback) {
  var result = [];
  var count = 10;
  for(i = 0; i < count; i++) {
    methodThatRunsAsync(function(resp){
      result.push(resp);
      if (result.length == count) {
        callback(result);
      }
    });
  }
}

请注意,我更改了循环。您所拥有的循环根本不会进行任何迭代。

最新更新