[英]Run one function after another: callback issue
我试图了解为什么函数lazy_2
不能这样运行:
function lazy_1 (callback) {
alert('lazy_1');
}
function lazy_2 () {
alert('lazy_2');
}
lazy_1(lazy_2);
? (通过在另一个函数完成后执行jquery函数 。)
jQuery方法效果很好:
function lazy_1 (callback) {
alert('lazy_1');
}
function lazy_2 () {
alert('lazy_2');
}
$.when( lazy_1() ).done(function() {
lazy_2();
});
因为lazy_1()
不调用它的回调-实际上没有人调用。 它需要看起来像这样的回调才能被调用:
function lazy_1 (callback) {
alert('lazy_1');
callback();
}
function lazy_2 () {
alert('lazy_2');
}
lazy_1(lazy_2);
上面的第二个代码块等效于:
lazy1();
lazy2();
因为您只是要jQuery $.when()
运行一个函数,然后再运行不涉及任何承诺的另一个函数(所有同步代码)。
您必须实际调用callback
。
function lazy_1 (callback) {
alert('lazy_1');
callback();
}
function lazy_2 () {
alert('lazy_2');
}
lazy_1(lazy_2);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.