Jquery NodeJS循环等待回调
如何在for循环中等待,直到收到回调,然后继续for循环 这是我的循环:Jquery NodeJS循环等待回调,jquery,node.js,loops,Jquery,Node.js,Loops,如何在for循环中等待,直到收到回调,然后继续for循环 这是我的循环: for(var i = 0; i < offer.items_to_receive.length; i++) { console.log("Waiting for callback..."); doSomething(function(data) { console.log("Got data from callback! " + data); }); console
for(var i = 0; i < offer.items_to_receive.length; i++) {
console.log("Waiting for callback...");
doSomething(function(data) {
console.log("Got data from callback! " + data);
});
console.log("Continue for loop now.");
}
for(变量i=0;i
感谢您的投入 如果调用的方法是异步的,您可能无法使用循环,相反,您可以使用基于递归的解决方案,如
功能x(项目,i){
i=i | | 0;
如果(i>=items.length){
返回
}
log(“等待回调…”+i);
剂量测量(功能(数据){
log(“从回调中获取数据!”+数据);
如果(i==items.length-1){
snippet.log(“已完成”);
}否则{
x(项目,i+1)
}
});
}
//异步方法的一个示例实现
var计数器=0;
功能剂量测定法(cb){
setTimeout(cb.bind(窗口,计数器++),100)
}
x([1,2,3,4])
发电机是您的朋友: 但是,如果您还没有准备好ES6,@Arun p Johny的帖子的概念可能会有所帮助:
function getData(items) {
if (!items.length) {
return;
}
doAsyncCall(items[0], function(data) {
getData(items.slice(1))
});
}
您可能无法在for循环中执行此操作,因为
doSomething
看起来是一种异步方法,有什么其他选项可以像我所希望的那样执行此操作@ArunPJohny-尝试一下像“做工很好”这样的东西,非常感谢@请不要调用函数x
。