中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

es6中promise是什么及有哪些作用

發布時間:2022-03-30 16:34:48 來源:億速云 閱讀:239 作者:iii 欄目:web開發

這篇文章主要講解了“es6中promise是什么及有哪些作用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“es6中promise是什么及有哪些作用”吧!

在es6中,promise用于創建一個新的Promise對象,生成Promise實例;promise是一個構造函數,是異步編程的解決方案;簡單說就是一個容器,里面保存著某個未來才會結束的事件的結果。

本教程操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。

es6中promise有什么用

Promise是ES6中提供的一個異步編程的解決方案,Promise本身是一個構造函數

typeof Promise  //  function

一般情況下 我們在開發中會使用 new Promise() 調用構造函數,創建一個新的Promise對象, Promise對象有兩個特點

1、對象的狀態不受外界影響。

Promise對象是一個異步操作,有三種狀態:pending(進行中)、fulfilled(已成功)和rejected(已失敗)。

只有異步操作的結果,可以決定Promise是哪一種狀態,任何其他操作都無法改變這個狀態

2、一旦Promise狀態改變,就不會再有變化,任何時候都可以得到這個結果。

Promise對象的狀態改變,只有兩種可能:從pending變為fulfilled 或者 從pending變為rejected。只要這兩種情況發生,狀態就不會再變了,會一直保持這個結果,這時就稱為 resolved(已定型)。如果改變已經發生了,你再對Promise對象添加回調函數,也會立即得到這個結果。這與事件(Event)不同,事件的特點是,如果你錯過了它,再去監聽,是得不到結果的

使用Promise的好處,就是在處理異步程序時,將異步操作隊列化,按照期望的順序執行,返回符合預期的結果,這樣即使是多重異步操作,也可以方便的使用Promise進行鏈式調用

3、Promise也有一些缺點。

首先,無法取消Promise,一旦新建它就會立即執行,無法中途取消。其次,如果不設置回調函數,Promise內部拋出的錯誤,不會反應到外部。第三,當處于pending狀態時,無法得知目前進展到哪一個階段(剛剛開始還是即將完成)

所謂Promise,簡單說就是一個容器,里面保存著某個未來才會結束的事件(通常是一個異步操作)的結果。

ES6 規定,Promise對象是一個構造函數,用來生成Promise實例。

下面代碼創造了一個Promise實例。

const promise = new Promise(function(resolve, reject) {
  // ... some code
  if (/* 異步操作成功 */){
    resolve(value);
  } else {
    reject(error);
  }
});

Promise構造函數接受一個函數作為參數,該函數的兩個參數分別是resolve和reject。它們是兩個函數,由 JavaScript 引擎提供,不用自己部署。

resolve函數的作用是,將Promise對象的狀態從“未完成”變為“成功”(即從 pending 變為 resolved),在異步操作成功時調用,并將異步操作的結果,作為參數傳遞出去;reject函數的作用是,將Promise對象的狀態從“未完成”變為“失敗”(即從 pending 變為 rejected),在異步操作失敗時調用,并將異步操作報出的錯誤,作為參數傳遞出去。

Promise實例生成以后,可以用then方法分別指定resolved狀態和rejected狀態的回調函數。

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

then方法可以接受兩個回調函數作為參數。第一個回調函數是Promise對象的狀態變為resolved時調用,第二個回調函數是Promise對象的狀態變為rejected時調用。其中,第二個函數是可選的,不一定要提供。這兩個函數都接受Promise對象傳出的值作為參數。

感謝各位的閱讀,以上就是“es6中promise是什么及有哪些作用”的內容了,經過本文的學習后,相信大家對es6中promise是什么及有哪些作用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹤山市| 辽阳市| 乐都县| 晋城| 榆中县| 手游| 铜陵市| 始兴县| 城固县| 旬阳县| 同心县| 孟村| 庆元县| 弋阳县| 临桂县| 郸城县| 华蓥市| 英德市| 济南市| 喀喇沁旗| 石家庄市| 宣化县| 徐闻县| 锡林浩特市| 云南省| 花垣县| 葫芦岛市| 车致| 平度市| 嵩明县| 鄂伦春自治旗| 阿瓦提县| 吉隆县| 泾源县| 浠水县| 陕西省| 绥滨县| 石门县| 祁东县| 眉山市| 冕宁县|