请问怎样使fun1运行完毕之后再运行fun2?
fun1应该如何改写?谢谢了! http://jsfiddle.net/7431zu0s/
<更新>
另外,如果代码是fun1更新n值,fun2中的useN()使用n值,下面的代码能否保证fun1一定先于fun2执行完毕?
var n;
var fun1 = function() {
return $.Deferred(function(defer) {
isConnectable(url,fun(connectable){
n = connectable;//更新n
defer.resolve();
})
});
}
var useN = function() {
//使用n
if(n)
//...
alert("fun2 is done");
};
var fun2 = function() {
useN();
}
$.when(fun1())
.done(fun2)
.fail(function(){ alert("error!"); });
var fun1 = function(){
var tasks = function(){
alert("fun1 is done");
};
setTimeout(tasks,10000);
}
var fun2 = function(){
var tasks = function(){
alert("fun2 is done");
};
setTimeout(tasks,5000);
}
$.when()
.done(fun1())
.done(fun2())
.fail(function(){ alert("error!"); });