日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Promise: 許諾

用來創(chuàng)建promise對象的構造函數(shù): function Promise (excutor) {}
簡潔描述: 一個promise對象用來表示一個異步操作的最終狀態(tài)(完成或失敗),以及該異步操作的結果值
詳細描述: Promise 對象是一個代理對象(代理一個值),被代理的值在Promise對象創(chuàng)建時是未知的。
 它允許你為異步操作的成功和失敗分別綁定相應的處理回調函數(shù)
 這讓異步方法可以像同步方法那樣返回值,但并不是立即返回最終執(zhí)行結果,而是一個能代表未來出現(xiàn)的結果的promise對象
promise對象的3種狀態(tài)值
 pending(未決定的): 初始狀態(tài),既不是成功,也不是失敗狀態(tài)。
 resolved/fulfilled(完成的): 意味著操作成功完成。 
 rejected(拒絕的): 意味著操作失敗。
promise對象的狀態(tài)變化(2種)
 pending ==> resolved: 調用resolve()
 pending ==> rejected: 調用reject()
 注意: promise的狀態(tài)確定后就不可再轉換為其它狀態(tài)
promise對象內部隱藏的屬性
 [[PromiseStatus]]: 內部變量, 存儲promise對象當前的狀態(tài)值
 [[PromiseValue]]: 內部變量, 存儲成功后的value或失敗后的reason

2). excutor: 執(zhí)行器

executor是帶有 resolve 和 reject 兩個參數(shù)的函數(shù): (resolve, reject) => {}
由我們定義, 在new Promise()內部會立即同步調用 executor 函數(shù)(不是我們調用的)
異步操作的代碼應該在此函數(shù)中執(zhí)行, 一般成功后調用resolve(), 失敗后調用reject()

3). resolve: 解決

由Promise函數(shù)內部定義, 但由我們調用的函數(shù)
當異步任務成功時, 我們應該調用resolve函數(shù), 并傳入需要的value
resolve函數(shù)內部: 
 同步修改promise對象的狀態(tài)為resolved和保存成功value, 
 異步執(zhí)行已經(jīng)存儲的所有onFulfilled回調函數(shù)

4). reject: 拒絕

由Promise函數(shù)內部定義, 但由我們調用的函數(shù)
當異步任務失敗/拋出error時, 我們應該調用reject函數(shù), 并傳入需要的reason
reject函數(shù)內部: 
 同步修改promise對象的狀態(tài)為rejected和保存失敗reason
 異步調用已經(jīng)存儲的所有onRejected回調函數(shù)

5). then: 接著

promise對象的方法: then(onRsolved函數(shù), onRejected函數(shù)), 返回值為一個新的promise對象
作用: 用來指定promise的狀態(tài)為resolved或rejected時的回調函數(shù)
注意: 
 then()方法的返回值為新的promise對象, 這樣可以進行.then()的鏈式調用
 返回的promise的結果狀態(tài)和值由回調函數(shù)的結果決定

6). onResolved: 當已解決時

由then()的第一個參數(shù)指定的回調函數(shù): (value) => {}
當promise的狀態(tài)為resolved時自動異步調用
onResolved函數(shù)的返回值:
 新的promise對象
 其它或不返回

 

7). onRejected: 當已拒絕時

由then()的第二個參數(shù)或catch()指定的回調函數(shù): (reason) => {}
當promise的狀態(tài)為rejected時自動異步調用
onRejected函數(shù)的返回值:
 新的promise對象
 其它或不返回

8). catch: 捕獲

promise對象的方法: catch(onRejected函數(shù))
是then()的語法糖方法, 相當于: then(null, onRejected函數(shù))

9). Promise.resolve()

手動創(chuàng)建一個已經(jīng)resolve的promise的快捷方法: Promise.resolve(value/promise)
如果參數(shù)為promise: 讀取此promise結果值作為返回promise的結果值

10). Promise.reject() 用得很少

手動創(chuàng)建一個已經(jīng)reject的promise的快捷方法: Promise.reject(reason)

 

11). Promise.all([p1, p2, p3])

用來實現(xiàn)批量執(zhí)行多個promise的異步操作, 返回一個新的promise: Promise.all([promise1, promise2, ...])
只有當所有異步操作都resolved后, 返回的promise才會變?yōu)閞esolved狀態(tài), 只要有一個變?yōu)閞ejected, 返回的promise直接變?yōu)閞ejected
面試題: 實現(xiàn)一次發(fā)多個請求, 只有都成功后才去做處理?

分享到:
標簽:Promise
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定