ES6Promise對象概念與用法分析

本文實(shí)例講述了ES6 Promise對象概念與用法。分享給大家供大家參考,具體如下:

創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、交城網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為交城等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

1.Promise概念

Promise 對象有三種狀態(tài):

① Fulfilled 可以理解為成功的狀態(tài)
② Rejected 可以理解為失敗的狀態(tài)
③ Pending 既不是 Fulfilld 也不是 Rejected 的狀態(tài),可以理解為 Promise 對象實(shí)例創(chuàng)建時(shí)候的初始狀態(tài)

2.三個重要方法

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

resolve 方法可以使 Promise 對象的狀態(tài)改變成成功,同時(shí)傳遞一個參數(shù)用于后續(xù)成功后的操作,在這個例子當(dāng)中就是 Hello World!字符串。

reject 方法則是將 Promise 對象的狀態(tài)改變?yōu)槭?,同時(shí)將錯誤的信息傳遞到后續(xù)錯誤處理的操作。

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 !三個彈窗

上述例子通過鏈?zhǔn)秸{(diào)用的方式,按順序打印出了相應(yīng)的內(nèi)容。then 可以使用鏈?zhǔn)秸{(diào)用的寫法原因在于,每一次執(zhí)行該方法時(shí)總是會返回一個 Promise 對象。另外,在 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);
}); //一個彈窗 Hello World !

希望本文所述對大家ECMAScript程序設(shè)計(jì)有所幫助。

網(wǎng)站名稱:ES6Promise對象概念與用法分析
標(biāo)題URL:http://muchs.cn/article40/geeoeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、標(biāo)簽優(yōu)化Google、靜態(tài)網(wǎng)站、定制網(wǎng)站、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作