异步回调循环
Async callback loop
我想创建如下循环
asyncFunction(function(returnedVariable){
if(returnedVariable < 10 )
// call asyncFunction() again
else
// break/exit
});
这可能吗?
我不能从内部调用它,因为
asyncFunction(function(returnedVariable){
if(returnedVariable < 10 )
asyncFunction(function(returnedVariable){
// ???
});
else
// break/exit
});
在底部编辑原始答案。重读后,我认为你可以为你的情况这样做(虽然我从来没有尝试过引用一个函数内部像这样):
function asyncFunction(callback){ /* ... do stuff then callback() */ };
function myCallback(returnedVariable){
if(returnedVariable < 10 ){
asyncFunction(myCallback);
} else {
// break/exit
}
}
asyncFunction(myCallback);
我相信有一种不需要库的方法,但为了简单起见,我总是使用caolan/async,它在节点和浏览器中都可以工作:
var async = require('async');
// for browser, above this script:
// <script src="/path/whatever/async.js" type="text/javascript"></script>
function wrapper(callback){
var lastReturn = 0;
function test(){
return lastReturn < 10
};
function iterate(next){
lastReturn = doSomethingWithPrev(lastReturn);
next();
};
function complete(err){
if(err){ return callback(err) };
callback(null, lastReturn);
};
async.whilst(test, iterate, complete);
};
相关文章:
- 事件循环、回调队列和 Javascript 的单线程是如何连接的
- 在没有大量回调函数的情况下在列表元素上循环播放同一动画
- 如何使for循环等待回调返回值
- 在 Node.js 中脱离回调函数中的“for”循环
- 返回循环中调用的回调结果的串联
- Javascript破坏了回调函数内部的for循环
- 使用 CoffeeScript 的类和 jquery.transit 创建一个回调循环
- 循环中的Javascript数组突变带有回调
- $.post到PHP文件-在包含循环完成之前不会调用回调
- 循环函数(Javascript回调帮助)
- 用于循环回调问题的 Nodej
- Javascript FOR 循环回调
- Nodejs 循环回调
- Javascript while 循环回调
- Javascript foreach循环回调到下一个元素
- 将循环回调连接到承诺链
- 需要循环回调的节点
- 事件气泡或循环回调
- jQuery动画循环回调
- For循环回调