gpt4 book ai didi

Javascript, Node : Call Asychronous Methods in a Loop & Return Result

转载 作者:可可西里 更新时间:2023-11-01 11:12:08 26 4
gpt4 key购买 nike

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

我想做的伪代码:

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

anotherMethod (){
var result = [];
for(i=1; i=10; i++){

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

return result; }

}

但是result的值始终是默认值。我如何将异步 block 的结果捕获到同步块(synchronized block)中并将其返回给调用者。

研究 Promise 框架,但发现很难理解它。如果有人可以帮助我理解如何实现这一点,那么伪代码也会很棒。

最佳答案

不,您不能返回结果,因为调用是异步的。也为该函数使用回调,并在添加最后一个结果时调用它:

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);
}
});
}
}

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

关于Javascript, Node : Call Asychronous Methods in a Loop & Return Result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21597575/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com