Rumah > Soal Jawab > teks badan
函数1 , 周期性调用,轮询某个返回值. 完成后调用函数2
函数2 , 周期性调用,轮询某个返回值. 完成后调用函数3
...
方法一:循序
$.ready 里调用 函数1
函数1 里面某个 if里 调用 函数2
函数2 里面某个 if里 调用 函数3
方法二:回调
$.ready 里调用 函数1 ,
函数2 函数3 作为参数传递
某个 if里 调用函数2
函数3作为参数传递
方法三:jquery when-then
$.when
{
函数1
}.then{
$.when
{
函数2
}.then{
$.when
{
函数3
}.then{
}
}
}
像这种每个任务都是非阻塞的, 各各任务之间又都是同步的,该怎么写最清晰?
PHP中文网2017-04-10 14:43:12
可以使用 Async.js 的eachSeries
函数,例如:
var func1 = function (callback) {
setTimeout(function () {
log('func1');
callback();
}, 3000); // 模拟3秒的请求
};
var func2 = function (callback) {
setTimeout(function () {
log('func2');
callback();
}, 2000); // 模拟2秒的请求
};
var func3 = function (callback) {
setTimeout(function () {
log('func3');
callback();
}, 5000); // 模拟5秒的请求
};
async.eachSeries([func1, func2, func3], function (func, callback) {
func(callback);
}, function(err) {
log('all OK');
});
链接:http://jsfiddle.net/wenyi/ax3vsLe3/
详细使用看文档说明。