javascript - jquery 关于Deferred方法的疑问?
本文介绍了javascript - jquery 关于Deferred方法的疑问?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
a()到b()方法没有问题,正常间隔了4s,之后的c()d()是立即执行,没有间隔,为什么会出现这样的情况呢?
var A = {
a : function(){
alert("a执行");
var dfd = $.Deferred();
setTimeout(function(){
dfd.resolve();
},4000);
return dfd;
},
b : function(){
alert("b执行");
var dfd = $.Deferred();
setTimeout(function(){
dfd.resolve();
},4000);
return dfd;
},
c : function(){
alert("c执行");
var dfd = $.Deferred();
setTimeout(function(){
dfd.resolve();
},4000);
return dfd;
},
d : function(){
alert("d执行");
var dfd = $.Deferred();
setTimeout(function(){
dfd.resolve();
},4000);
return dfd;
}
}
A.a().then(function(){A.b()}).then(function(){A.c()}).then(function(){A.d()});
解决方案
你不return,直接就return undefined了,当然立即执行了
A.a().then(function () {
return A.b()
}).then(function () {
return A.c()
}).then(function () {
A.d()
});
这篇关于javascript - jquery 关于Deferred方法的疑问?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文