麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > Promise的基本用法

Promise的基本用法

來源:千鋒教育
發布人:wjy
時間: 2022-10-12 17:18:01 1665566281

  (1)創建Promise對象

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

  Promise構造函數接受一個函數作為參數,該函數的兩個參數分別是resolve和reject。

Promise的基本用法1

  一般情況下都會使用new Promise()來創建promise對象,但是也可以使用promise.resolve和promise.reject這兩個方法:

  Promise.resolve

  Promise.resolve(value)的返回值也是一個promise對象,可以對返回值進行.then調用,代碼如下:

Promise的基本用法2

  resolve(11)代碼中,會讓promise對象進入確定(resolve狀態),并將參數11傳遞給后面的then所指定的onFulfilled 函數;

  創建promise對象可以使用new Promise的形式創建對象,也可以使用Promise.resolve(value)的形式創建promise對象;

  Promise.reject

  Promise.reject 也是new Promise的快捷形式,也創建一個promise對象。代碼如下:

Promise的基本用法3

  就是下面的代碼new Promise的簡單形式:

Promise的基本用法4

  下面是使用resolve方法和reject方法:

Promise的基本用法5

  上面的代碼的含義是給testPromise方法傳遞一個參數,返回一個promise對象,如果為true的話,那么調用promise對象中的resolve()方法,并且把其中的參數傳遞給后面的then第一個函數內,因此打印出 “hello world”, 如果為false的話,會調用promise對象中的reject()方法,則會進入then的第二個函數內,會打印No thanks;

  (2)Promise方法

  Promise有五個常用的方法:then()、catch()、all()、race()、finally。下面就來看一下這些方法。

  then()

  當Promise執行的內容符合成功條件時,調用resolve函數,失敗就調用reject函數。Promise創建完了,那該如何調用呢?

Promise的基本用法6

  then方法可以接受兩個回調函數作為參數。第一個回調函數是Promise對象的狀態變為resolved時調用,第二個回調函數是Promise對象的狀態變為rejected時調用。其中第二個參數可以省略。

  then方法返回的是一個新的Promise實例(不是原來那個Promise實例)。因此可以采用鏈式寫法,即then方法后面再調用另一個then方法。

  當要寫有順序的異步事件時,需要串行時,可以這樣寫:

Promise的基本用法7

  那當要寫的事件沒有順序或者關系時,還如何寫呢?可以使用all 方法來解決。

  2. catch()

  Promise對象除了有then方法,還有一個catch方法,該方法相當于then方法的第二個參數,指向reject的回調函數。不過catch方法還有一個作用,就是在執行resolve回調函數時,如果出現錯誤,拋出異常,不會停止運行,而是進入catch方法中。

Promise的基本用法8

  all()

  all方法可以完成并行任務, 它接收一個數組,數組的每一項都是一個promise對象。當數組中所有的promise的狀態都達到resolved的時候,all方法的狀態就會變成resolved,如果有一個狀態變成了rejected,那么all方法的狀態就會變成rejected。

Promise的基本用法9

  調用all方法時的結果成功的時候是回調函數的參數也是一個數組,這個數組按順序保存著每一個promise對象resolve執行時的值。

  (4)race()

  race方法和all一樣,接受的參數是一個每項都是promise的數組,但是與all不同的是,當最先執行完的事件執行完之后,就直接返回該promise對象的值。如果第一個promise對象狀態變成resolved,那自身的狀態變成了resolved;反之第一個promise變成rejected,那自身狀態就會變成rejected。

Promise的基本用法10

  那么race方法有什么實際作用呢?當要做一件事,超過多長時間就不做了,可以用這個方法來解決:

Promise的基本用法11

  finally()

  finally方法用于指定不管 Promise 對象最后狀態如何,都會執行的操作。該方法是 ES2018 引入標準的。

Promise的基本用法12

  上面代碼中,不管promise最后的狀態,在執行完then或catch指定的回調函數以后,都會執行finally方法指定的回調函數。

  下面是一個例子,服務器使用 Promise 處理請求,然后使用finally方法關掉服務器。

Promise的基本用法13

  finally方法的回調函數不接受任何參數,這意味著沒有辦法知道,前面的 Promise 狀態到底是fulfilled還是rejected。這表明,finally方法里面的操作,應該是與狀態無關的,不依賴于 Promise 的執行結果。finally本質上是then方法的特例:

Promise的基本用法14

  上面代碼中,如果不使用finally方法,同樣的語句需要為成功和失敗兩種情況各寫一次。有了finally方法,則只需要寫一次。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 久久综合九色综合欧美狠狠| 国产成品精品午夜视频| 成人欧美一区二区三区的电影| 国产精品多p对白交换绿帽| 麻豆天美精东果冻星空| 一本色道久久综合亚洲精品| 美女被狂揉下部羞羞动漫| 本子库里番acg全彩无遮挡| 国产精品一区二区在线观看| 别揉我胸啊嗯~| 中文字幕在线第二页| 51神马午夜| 欧洲美女与动性zozozo| 久久99精品国产麻豆不卡 | 在线观看免费毛片| 日韩午夜免费视频| 中文字幕亚洲第一| 濑亚美莉在线视频一区| 特级aaaaaaaaa毛片免费视频| 色老头综合免费视频| 新梅瓶4在线观看dvd| 日本一道本| 无翼乌全彩无漫画大全| 玩乡下小处雏女免费视频| 国产精品一区二区久久| 欧美日韩中文字幕在线视频| 日本h片无遮挡在线观看| 国产白嫩美女在线观看| 把胡萝卜立着自己坐上去| 伊人影院蕉久| 色悠久久久久综合欧美99| 国产精品视频全国免费观看| 成人动漫在线免费观看| 欧美激情一级二级三级在线视频| 亚洲日本va午夜中文字幕一区 | 又大又粗好舒服好爽视频 | 最近最好的中文字幕2019免费| 麻豆亚洲| 男朋友想吻我腿中间部位| 一区在线免费| www.天天操.com|