[JavaScript] ES6 promise與jQuery promise

(1)ES6方式

http://liubin.github.io/promises-book/#promise-is-always-async
即使在調用promise.then注冊回調函數的時候promise對象已經是確定的狀態(tài),
<u></u>Promise也會以異步的方式調用該回調函數,這是在Promise設計上的規(guī)定方針。

例如:

var pro=new Promise(function(resolve){
    resolve(1);
});

//已經resolve了,再設置then回調。
pro.then(function(v){
    alert(v);    //1
});
alert(2);

//還是會已異步方式,發(fā)生回調。
//先alert(2)再alert(v);

//而且,以后什么時候注冊then,都會異步調用。

(2)jQuery方式

但是jQuery的promise并不是如此。

例如:

var defer=$.Deferred();
defer.resolve(1);

//deferred對象已經resolve了
defer.done(function(v){
    alert(v);    //不會執(zhí)行
});
alert(2);

//只執(zhí)行alert(2);
//如果需要執(zhí)行done,就要把注冊done回調放到defer.resolve()之前。

注:
jQuery的promise是一種限制化的deferred對象。

var defer=$.Deferred();
var promise=defer.promise();

promise沒有resolve,reject,notify方法,不能進行狀態(tài)更改,
只能注冊回調。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 抽象來說,deferreds 可以理解為表示需要長時間才能完成的耗時操作的一種方式,相比于阻塞式函數它們是異步的,...
    北方蜘蛛閱讀 1,649評論 1 5
  • Promise的含義: ??Promise是異步編程的一種解決方案,比傳統的解決方案——回調函數和事件——更合理和...
    呼呼哥閱讀 2,270評論 0 16
  • 本文適用的讀者 本文寫給有一定Promise使用經驗的人,如果你還沒有使用過Promise,這篇文章可能不適合你,...
    HZ充電大喵閱讀 7,454評論 6 19
  • Promise 的含義 一句話概括一下promise的作用:可以將異步操作以同步操作的流程表達出來,避免了層層嵌套...
    雪萌萌萌閱讀 5,655評論 0 7
  • 來來來,咱們先來玩?zhèn)€游戲: 丈母娘要給你發(fā)媳婦兒啦,老大老二老三,你選擇哪一個? 老大:年齡32,有車有房,自有公...
    蘇檸姑娘閱讀 553評論 0 0

友情鏈接更多精彩內容