国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

ES6基礎之 Promise 對象用法實例詳解

2024-05-06 15:35:39
字體:
來源:轉載
供稿:網友

本文實例講述了ES6基礎之 Promise 對象用法。分享給大家供大家參考,具體如下:

Promise 對象

1.Promise對象是ES6對異步編程的一種解決方案,它有以下兩個特點:

Promise對象代表一個異步操作,它只有三種狀態:Pending(進行中)、Resolved(已完成,又稱 Fulfilled)和Rejected(已失?。?,并且該狀態不會受外界的影響 Promise對象的狀態改變,只有兩種可能:從 Pending 變為 Resolved 或者從 Pending 變為 Rejected,并且一旦狀態改變,就不會再變,任何時候都可以得到這個結果

2.Promise對象的一些缺點:

一旦新建了一個Promise對象,就會立即執行,并且無法中途取消

let promise = new Promise(function(resolve, reject) {console.log('Promise');resolve();});// Promise

如果不設置Promise對象的回調函數,Promise會在內部拋出錯誤,不會反應到外部,也就是在外部拿不到錯誤提示

如果Promise對象處于Pending狀態時,是無法得知捕獲進展到哪一個階段的(剛剛開始還是即將完成)

3.Promise對象是一個構造函數,用來生成Promise實例,下面是創造了一個Promise實例的示例

let promise = new Promise(function(resolve, reject) { // ... to do if ( success ){  resolve(value);  //成功操作 } else {  reject(error);   //失敗操作 }});

ps:Promise 構造函數接受一個函數作為參數,該函數的兩個參數分別是 resolve 和 reject ,分別用來處理成功和失敗的回調;

4.Promise實例生成以后,可以用 then 方法分別指定 Resolved 狀態和 Reject 狀態的回調函數;

promise.then(function(value) { // success}, function(error) { // failure});

ps:then方法可以接受兩個回調函數作為參數。第一個回調函數是Promise對象的狀態變為Resolved時調用,第二個回調函數是Promise對象的狀態變為Rejected時調用,其中,第二個函數是可選的;

5.resolve函數的參數除了正常的值以外,還可能是另一個 Promise 實例,表示異步操作的結果有可能是一個值,也有可能是另一個異步操作;

let promise1 = new Promise(function (resolve, reject) { // ...});let promise2 = new Promise(function (resolve, reject) { // ... resolve(p1);})

上面代碼表示一個異步操作的結果是返回另一個異步操作,promise1 的狀態就會傳遞給 promise2 , 如果 promise1 的狀態是Pending,那么 promise2 的回調函數就會等待promise1的狀態改變;如果promise1的狀態已經是Resolved或者Rejected,那么promise2的回調函數將會立刻執行;

6.Promise實例方法then返回的是一個新的Promise實例,因此可以采用鏈式寫法,即then方法后面再調用另一個then方法

let promise = new Promise(function (resolve, reject) { // ...})promise.then(function(res) {  return res.post;}).then(function(post) {  // ...});            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 满洲里市| 湖南省| 雅安市| 廉江市| 子洲县| 苍溪县| 涟源市| 祁门县| 乌拉特中旗| 绍兴县| 保德县| 漠河县| 旌德县| 长泰县| 黑山县| 临武县| 呼伦贝尔市| 牡丹江市| 姜堰市| 白沙| 仁怀市| 章丘市| 女性| 台江县| 肥乡县| 衡南县| 宽城| 杭锦后旗| 肇源县| 锡林郭勒盟| 武穴市| 阜阳市| 曲阜市| 政和县| 竹北市| 咸阳市| 肥东县| 石阡县| 万全县| 忻城县| 花垣县|