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了,当然立即执行了