本文實(shí)例講述了ES6 Promise對(duì)象概念與用法。分享給大家供大家參考,具體如下:
1.Promise概念
Promise 對(duì)象有三種狀態(tài):
① Fulfilled 可以理解為成功的狀態(tài)
② Rejected 可以理解為失敗的狀態(tài)
③ Pending 既不是 Fulfilld 也不是 Rejected 的狀態(tài),可以理解為 Promise 對(duì)象實(shí)例創(chuàng)建時(shí)候的初始狀態(tài)
2.三個(gè)重要方法
在 Promise 對(duì)象當(dāng)中有三個(gè)重要方法――――resolve, reject和then。
resolve 方法可以使 Promise 對(duì)象的狀態(tài)改變成成功,同時(shí)傳遞一個(gè)參數(shù)用于后續(xù)成功后的操作,在這個(gè)例子當(dāng)中就是 Hello World!字符串。
reject 方法則是將 Promise 對(duì)象的狀態(tài)改變?yōu)槭。瑫r(shí)將錯(cuò)誤的信息傳遞到后續(xù)錯(cuò)誤處理的操作。
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 !三個(gè)彈窗上述例子通過(guò)鏈?zhǔn)秸{(diào)用的方式,按順序打印出了相應(yīng)的內(nèi)容。then 可以使用鏈?zhǔn)秸{(diào)用的寫法原因在于,每一次執(zhí)行該方法時(shí)總是會(huì)返回一個(gè) Promise 對(duì)象。另外,在 then onFulfilled 的函數(shù)當(dāng)中的返回值,可以作為后續(xù)操作的參數(shù),因此上面的例子也可以寫成:
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);}); //一個(gè)彈窗 Hello World !希望本文所述對(duì)大家ECMAScript程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注