ref : 範例二
ref : 範例一 + 比較好懂var wait = function(xx){ var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象 var tasks = function(yy){ console.log("tasks-xx="+xx); console.log("tasks-yy="+yy); this.value=11; }; setTimeout(function(){ var ss=new tasks(31); console.log("ss="+ss); console.log("jason="+JSON.stringify(ss)); dtd.resolve(); //改變Deferred對象的執行狀態 },1500); return dtd.promise(); // 返回promise对象 }; function bbb() { $.when(wait(15)) .done(function(){ console.log("done"); }) .fail(function(){ console.log("fail"); }); console.log("run..."); } bbb();
function sayIt(ms, def) { setTimeout(function() { console.log('middle'); def.resolve(); console.log('middle-2'); return 10; }, ms); } function slowPromise() { var def = $.Deferred(); var result = sayIt(2000, def); return def; } slowPromise().then(function() { console.log('end'); });
沒有留言:
張貼留言