【发布时间】:2016-04-20 17:38:26
【问题描述】:
我在 $.when(f1,f2) 中调用了两个函数,但在解析 f2 之前调用了 done()。但是如果我将 alert() 语句放在 done 中,它工作正常。
function f1(){
var d= new $.Deferred();
.......code......
d.resolve();
return d.promise();
}
function f2(){
var d= new $.Deferred();
.......code......
d.resolve();
return d.promise();
}
function f3()
{.....code..... }
$.when(f1().f2()).done(f3());
上面的代码甚至在 f2() 被解析之前就调用了 f3。但是如果我把 alert 语句放在 done() 里面就可以了。
$.when(f1().f2()).done( alert ("came here");f3());
这是按正确的顺序执行的。
$.when(f1,f2).then() 也一样。谁能告诉我这种不寻常行为的原因是什么。
【问题讨论】:
标签: jquery-deferred .when