var dtd = $.Deferred(); // 新建一个 Deferred 对象
var wait = function(dtd){
var tasks = function(){
alert("执行完毕!");
dtd.resolve(); // 改变 Deferred 对象的执行状态
};
setTimeout(tasks,5000);
return dtd;
};
$.when(wait(dtd))
.done(function(){ alert("哈哈,成功了!"); })
.fail(function(){ alert("出错啦!"); });
dtd.resolve();
这段代码是怎样的执行顺序啊,求解释!我想的是先弹出“执行完毕”而后“哈哈,成功了!”而后“执行完毕”而后“哈哈,成功了”但是执行结果是:先弹出“哈哈,成功了!”而后弹出“执行完毕”
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.