ezm*_*use 21 javascript jquery callback
我需要严格按顺序调用一堆函数.下一个函数等到前一个函数完成之前,这一点也非常重要.
现在我正在使用链式回调:
callMe1(function(){
callMe2(function(){
callMe3(function(){
callMeFinal();
});
});
});
Run Code Online (Sandbox Code Playgroud)
这有效,但似乎有点难看.
对于不同方法的任何建议?
Fel*_*ing 32
如果您使用jQuery,那么您可以使用queue链接函数.
$(document)
.queue(callMe1)
.queue(callMe2);
Run Code Online (Sandbox Code Playgroud)
这里callMeX的格式应为:
function callMeX(next) {
// do stuff
next();
}
Run Code Online (Sandbox Code Playgroud)
您可以实现"堆栈"系统:
var calls = [];
function executeNext(next) {
if(calls.length == 0) return;
var fnc = calls.pop();
fnc();
if(next) {
executeNext(true);
}
}
/*To call method chain synchronously*/
calls.push(callMe3);
calls.push(callMe2);
calls.push(callMe1);
executeNext(true);
/*To call method chain asynchronously*/
calls.push(callMe3);
calls.push(function(){
callMe2();
executeNext(false);
});
calls.push(function(){
callMe1();
executeNext(false);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11071 次 |
| 最近记录: |