欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Promise掃盲貼

then

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站設計、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的潼關網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

then函數(shù)可以return另一個promise:

const p1 = new Promise((resolve, reject) =>{
  resolve('p1')
})
const p2 = new Promise((resolve, reject) =>{
 setTimeout(() =>{
  resolve('p2')
 },3000)
})
p1.then(res => {
 console.log(res)
  return p2
}).then(res =>{ 
  // p2 resolve后才執(zhí)行
  console.log(res)
})
//p1
// 3s后輸出...
// p2

那么這個p2就會代替當前p1的狀態(tài),等到新的p2的狀態(tài)修改時,下一個then才會執(zhí)行

catch

1. 作用

可以捕獲到promise程序執(zhí)行中的error,等同于  .then(null, rejection)  或  .then(undefined, rejection)

2. 可以獲取到的錯誤

promise函數(shù)體中拋出的error。在promise resolve后,再拋出錯誤,不會被捕獲

const p1 = new Promise((resolve,reject) => {throw new Error('error')})
p1.catch(error => console.log(error))  // Error: error

promise的reject操作

const p2 = new Promise((resolve,reject) => reject('rejected'))
p2.catch(error => console.log(error)) // rejected

then 函數(shù)體中拋出的error

const p3 = new Promise((resolve,reject) => resolve('resolved'))
p3.then(res =>{
  throw new Error('error')
}).catch(error => console.log(error)) // Error: error

then函數(shù)可以返回一個promise(如果沒有定義catch方法),如果這個promise函數(shù)體中有reject或者error,也可以捕獲到

3. 推薦使用catch方式捕獲錯誤,而不是then的第二個參數(shù):

因為catch可以捕獲到它前面所有then方法中的錯誤

finally

  • 不管promise最后狀態(tài)如何,都會執(zhí)行的操作
  • 沒有參數(shù),獲取不到當前promise最后的狀態(tài)

Promise.all

1. 參數(shù)

參數(shù)不僅僅可以是數(shù)組,具有Iterator接口的對象都可以。
數(shù)組參數(shù)的每一個元素為promise實例,如果不是,就會調用Promise.resolve轉換為Promise實例

const obj = {
  [Symbol.iterator]() {
    let index = 0
    return {
      next() {
        return {
          // promise對象 和 其他類型都可以
          value: new Promise(resolve => resolve(index++)), done: index > 2
          // value: index++, done: index > 2
        }
      }
    }
  }
}
const p = Promise.all(obj)
p.then(res => {
  console.log(res) // [0, 1]
}) 

2. 狀態(tài)

const p = Promise.all([p1, p2, p3]);

p的狀態(tài)由p1、p2、p3決定,分成兩種情況:

  • 只有p1、p2、p3的狀態(tài)都變成fulfilled,p的狀態(tài)才會變成fulfilled,此時p1、p2、p3的返回值組成一個數(shù)組,傳遞給p的回調函數(shù)。
  • 只要p1、p2、p3之中有一個被rejected,p的狀態(tài)就變成rejected,此時第一個被reject的實例的返回值,會傳遞給p的回調函數(shù)。

3. catch

如果參數(shù)中的promise定義了catch方法,那么Promise.all()的catch就不會捕獲到錯誤

Promise.race

  • 只要p1、p2、p3之中有一個實例率先改變狀態(tài),p的狀態(tài)就跟著改變。那個率先改變的 Promise 實例的返回值,就傳遞給p的回調函數(shù)。
  • 參數(shù)、catch規(guī)則同Promise.all

Promise.resolve

將現(xiàn)有對象轉為Promise對象。

1. 參數(shù)

  • 參數(shù)為promise實例:原封不動的返回這個實例。
  • 參數(shù)為thenable對象:將它轉為promise對象,然后立即執(zhí)行它的then方法
  • 參數(shù)不是thenable對象,或者是一個原始值:返回一個新的promise對象,狀態(tài)為resolved
  • 沒有參數(shù):直接返回衣蛾resolved狀態(tài)的promise對象

Promise.reject

返回一個狀態(tài)為rejected的promise實例

Promise.reject()方法的參數(shù),會原封不動地作為reject的理由,變成后續(xù)方法的參數(shù)

const thenable = {
 then(resolve, reject) {
  reject('error');
 }
};

Promise.reject(thenable)
.catch(e => {
 console.log(e === thenable)
})
// true e并不是'error'

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

分享題目:Promise掃盲貼
網(wǎng)站網(wǎng)址:http://aaarwkj.com/article48/phohhp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、外貿網(wǎng)站建設商城網(wǎng)站、域名注冊手機網(wǎng)站建設、網(wǎng)站制作

廣告

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

成都定制網(wǎng)站建設
日韩女同一区二区三区在线观看| 免费av在线网址网站| 国产又黄又爽不卡的视频| 一区二区三区深夜福利| 亚洲人午夜射精精品日韩| 国产日韩久久免费电影| 午夜啪视频免费在线观看| 国产亚洲欧美日韩精品| 国产三级一区二区不卡| 日本熟女视频中文字幕| 亚洲精品乱码精品乱码不卡| 91久久国产综合久久91| 91欧美激情另类亚洲| 亚洲国产精品一区二区| 高清中文一区二区三区| 欧美日韩三级国产在线| 亚洲综合另类视频在线观看| 欧美av精品一区二区三区| 亚洲丰满老熟女激情av| 九九热精品只有这里有| 91精品国产自产在线观看| 日本少妇熟女一区二区| 精品中文字幕欧美区一区| 亚洲福利网址一二三区| 日韩午夜电影一区二区三区| 日本岛国免费一区二区| 亚洲午夜精品毛片成人| 亚洲乱码一区二区三区人妇| 国产一区二区激情在线| 亚洲美女高清一区二区三区| 九九国产精品免费视频| 91青青草原在线视频| 欧美v日韩v亚洲综合国产高清 | 五十路六十路美熟人妻| 日韩中文字幕资源一区| 久久精品国产视频在热| av丰满人妻一区二区| 亚洲欧美国产另类综合| 日本师生三片在线观看| 国产精品推荐在线观看| 国产真实老熟女无套内|