【发布时间】:2017-05-01 17:11:48
【问题描述】:
我正在尝试在 javascript 中创建一个事件驱动的 while 循环。本质上,它遍历一组值并在每次迭代期间进行查询。然后,根据查询的结果,它应该继续循环或停止并做一些事情。
我意识到你不能在 while 循环中进行回调,所以我对如何实现这样的事情感到困惑。嵌套函数会重复自己,这并不理想。
我的循环代码:
var done = false;
while(!done){
bridgeCheckRooms(send,function(reply){ //callback
console.log(tagArray[count]);
console.log(reply);
if(reply.success){
done = true;
} else {
count--;
}
});
}
【问题讨论】:
-
你应该在“未完成”时再次调用自身而不是循环
-
换句话说,你需要研究递归
-
bridgeCheckRooms 是否进行异步调用?
-
我这样做了,但即使
done==true,该函数最终也会多次复制,因此它运行的次数超出了我的需要。 -
是的,bridgeCheckRooms 函数确实对数据库进行了异步调用以获取值。 @Learning2Code
标签: javascript asynchronous while-loop callback iteration