[英]Run one function after another: callback issue
I'm trying to understand why function lazy_2
doesn't run this way: 我试图了解为什么函数
lazy_2
不能这样运行:
function lazy_1 (callback) {
alert('lazy_1');
}
function lazy_2 () {
alert('lazy_2');
}
lazy_1(lazy_2);
? ? (Via Execute jquery function after another function completes .)
(通过在另一个函数完成后执行jquery函数 。)
jQuery method works well: jQuery方法效果很好:
function lazy_1 (callback) {
alert('lazy_1');
}
function lazy_2 () {
alert('lazy_2');
}
$.when( lazy_1() ).done(function() {
lazy_2();
});
Because lazy_1()
doesn't call it's callback - in fact nobody does. 因为
lazy_1()
不调用它的回调-实际上没有人调用。 It needs to look like this for the callback to get called: 它需要看起来像这样的回调才能被调用:
function lazy_1 (callback) {
alert('lazy_1');
callback();
}
function lazy_2 () {
alert('lazy_2');
}
lazy_1(lazy_2);
Your second code block above is equivalent to: 上面的第二个代码块等效于:
lazy1();
lazy2();
because you're just asking jQuery $.when()
to run one function and then another with no promises involved (all synchronous code). 因为您只是要jQuery
$.when()
运行一个函数,然后再运行不涉及任何承诺的另一个函数(所有同步代码)。
You have to actually call callback
. 您必须实际调用
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.