ES6 Promise對象概念與用法分析,es6promise對象概念

來源:互聯網
上載者:User

ES6 Promise對象概念與用法分析,es6promise對象概念

本文執行個體講述了ES6 Promise對象概念與用法。分享給大家供大家參考,具體如下:

1.Promise概念

Promise 對象有三種狀態:

① Fulfilled 可以理解為成功的狀態
② Rejected 可以理解為失敗的狀態
③ Pending 既不是 Fulfilld 也不是 Rejected 的狀態,可以理解為 Promise 對象執行個體建立時候的初始狀態

2.三個重要方法

在 Promise 對象當中有三個重要方法————resolve, reject和then。

resolve 方法可以使 Promise 對象的狀態改變成成功,同時傳遞一個參數用於後續成功後的操作,在這個例子當中就是 Hello World!字串。

reject 方法則是將 Promise 對象的狀態改變為失敗,同時將錯誤的資訊傳遞到後續錯誤處理的操作。

function printHello (ready) { return new Promise(function (resolve, reject) { if (ready) {  resolve("Hello"); } else { reject("Good bye!");}});}function printWorld () {alert("World");}function printExclamation () {alert("!");}printHello(true).then(function(message){alert(message);}).then(printWorld).then(printExclamation); //分別彈出 Hello World !三個彈窗

上述例子通過鏈式調用的方式,按順序列印出了相應的內容。then 可以使用鏈式調用的寫法原因在於,每一次執行該方法時總是會返回一個 Promise 對象。另外,在 then onFulfilled 的函數當中的傳回值,可以作為後續操作的參數,因此上面的例子也可以寫成:

function printHello (ready) { return new Promise(function (resolve, reject) { if (ready) {  resolve("Hello"); } else { reject("Good bye!");}});}printHello(true).then(function (message) { return message;}).then(function (message) { return message + ' World';}).then(function (message) { return message + '!';}).then(function (message) {alert(message);}); //一個彈窗 Hello World !

希望本文所述對大家ECMAscript程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.