Node.js nodejs异步';有段时间了
欢迎大家, 我希望重复调用函数,但希望每次调用仅在前一次调用完成时运行。异步的while是否符合我的需要?或者这些电话是并行的吗 谢谢Node.js nodejs异步';有段时间了,node.js,asynchronous,asynccallback,Node.js,Asynchronous,Asynccallback,欢迎大家, 我希望重复调用函数,但希望每次调用仅在前一次调用完成时运行。异步的while是否符合我的需要?或者这些电话是并行的吗 谢谢 Gary在执行您需要的操作的同时,它会连续运行每个函数。在每次运行之前,它将执行“测试”功能,以确保再次运行 他们的例子是: var count = 0; async.whilst( function () { return count < 5; }, function (callback) { count++;
Gary在执行您需要的操作的同时,它会连续运行每个函数。在每次运行之前,它将执行“测试”功能,以确保再次运行 他们的例子是:
var count = 0;
async.whilst(
function () { return count < 5; },
function (callback) {
count++;
setTimeout(callback, 1000);
},
function (err) {
// 5 seconds have passed
}
);
var计数=0;
异步的(
函数(){返回计数<5;},
函数(回调){
计数++;
setTimeout(回调,1000);
},
功能(err){
//5秒钟过去了
}
);
,异步的将完成这项工作
你可能想考虑异步的(同时的倒数)。两者的工作相同,但关键区别在于:
将在每次测试通过时调用该函数async。而
async.until将在每次测试失败时调用该函数
- 异步的while应该可以帮你解决这个问题。在参考已接受答案上的代码之前,请注意您将使用的async版本。正如公认答案中的一条评论所表明的那样,这个循环的结构发生了轻微的变化,这可能不太容易发现
异步v2:
异步v3:
他们的例子是:
var count = 0;
async.whilst(
function test(cb) { cb(null, count < 5); },
function iter(callback) {
count++;
setTimeout(function() {
callback(null, count);
}, 1000);
},
function (err, n) {
// 5 seconds have passed, n = 5
}
);
var计数=0;
异步的(
函数测试(cb){cb(null,计数<5);},
函数iter(回调){
计数++;
setTimeout(函数(){
回调(null,count);
}, 1000);
},
函数(err,n){
//5秒过去了,n=5
}
);
此示例的结构已更改,请查看文档