Javascript for循环中的异步回调失败
我正在编写一个节点JS函数,它有一个对象数组,对于其中的每一项,我都需要调用异步函数Javascript for循环中的异步回调失败,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,我正在编写一个节点JS函数,它有一个对象数组,对于其中的每一项,我都需要调用异步函数 for (var i = 0; i < allCases.length; i++) { if (allCases[i].Case_ID != null) { Utils.findAndUpdate(allCases[i], function(response) { console.log('received in the callback ', respo
for (var i = 0; i < allCases.length; i++) {
if (allCases[i].Case_ID != null) {
Utils.findAndUpdate(allCases[i], function(response) {
console.log('received in the callback ', response);
});
} else {
console.log('case id is null');
}
}
for(var i=0;i
findAndUpdate是一个执行异步调用并在回调中返回结果的函数。当我在一个项目上尝试这个方法时,效果非常好,但是在循环中,当循环一步一步地进行并在回调仍在进行时到达终点时,它失败了
我还尝试了这种变通方法,只增加了回调成功中的“i”。但它会导致无限循环
for (let i = 0; i < allCases.length;) {
if (allCases[i].Case_ID != null) {
Utils.findAndUpdate(allCases[i], function(response) {
console.log('received in the callback ', response);
i++;
});
} else {
console.log('case id is null');
}
}
for(设i=0;i
我想知道如何解决这个问题,为什么这个变通方法失败了 试试这个:
allCases.forEach((case) => {
if (case.Case_ID != null) {
Utils.findAndUpdate(case, function (response) {
console.log('received in the callback ', response);
});
} else {
console.log('case id is null');
}
});
但是,如果您想链接请求,那么您应该摆脱循环,尝试以下方法:
allCases.forEach((case) => {
if (case.Case_ID != null) {
Utils.findAndUpdate(case, function (response) {
console.log('received in the callback ', response);
});
} else {
console.log('case id is null');
}
});
但是如果你想链接请求,那么你应该去掉你可以使用的循环
for(设i=0;i
您可以使用
for(设i=0;i
谢谢,它成功了。如果您的回答能说明这种方法为什么有效,我们将不胜感激。我还有一个问题,如何确定我到达了线程中的最后一个回调?谢谢,它起作用了。如果您的回答能说明这种方法为什么有效,我们将不胜感激。我还有一个问题,如何确定我到达了线程中的最后一个回调?谢谢,这也很有效。我还有一个问题,如何确定我到达了线程中的最后一个回调?请检查i
的值是否应等于length-1Thanks,这同样有效。我还有一个问题,如何确定我到达了线程中的最后一个回调?请检查i
的值是否应等于length-1