promise

基礎知識

  testPromise() {
    let p = new Promise((resolve, reject) => {
      setTimeout(() => {
        console.log('執(zhí)行完成')
        resolve('我成功了')
        // reject('我失敗了')
      }, 2000);
    })
    return p
  },

// 調(diào)用
 this.testPromise().then(res => {
      console.log(res)
    }).catch(err => {
      console.log(err)
    })

Promise的三種狀態(tài):pending(待定) 、fulfilled(已執(zhí)行) 、rejection(已拒絕)
一個構造函數(shù):new Promise
兩個實例方法:.then 對應fulfilled .catch對應rejection
兩個常用方法:Promise.all、Promise.race

使用promise避免回調(diào)地獄

// 日常回調(diào)地獄
getData1(data1 => {
  getData2(data1, data2 => {
    getData3(data2, data3 => {
      getData4(data3, data4 => {
        getData5(data4, data5 => {
          // 終于取到data5了
        })
      })
    })
  })
})

// 使用Promise避免回調(diào)地獄
getData1()
.then(getData2)
.then(getData3)
.then(getData4)
.then(getData5)
.then(data => {
  // 取到最終data了
})
})

相關函數(shù)

  1. Promise.all
Promise.all([this.testPromise(), this.testPromise1(), this.testPromise2()]).then(res => {
      console.log('--------------promise.all success-----------', res)
    }).catch(err => {
      console.log('--------------promise.all fail-----------', err)
    })

并行執(zhí)行異步操作的能力,會在所有異步操作執(zhí)行完后才執(zhí)行回調(diào)。如果都執(zhí)行成功,就會執(zhí)行then的回調(diào);如果有一個執(zhí)行失敗,就會執(zhí)行catch的回調(diào)。

  1. Promise.race
    all方法的效果實際上是「誰跑的慢,以誰為準執(zhí)行回調(diào)」,那么相對的就有另一個方法「誰跑的快,以誰為準執(zhí)行回調(diào)」,即Promise.race。使用場景

參考

大白話講解Promise(一) - 呂大豹 - 博客園 (cnblogs.com)

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Promise 的含義 Promise 是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理和更...
    硅谷干貨閱讀 305評論 0 0
  • Promise 的含義 Promise對象有以下兩個特點 :(1)對象的狀態(tài)不受外界影響。Promise對象代表一...
    前端末晨曦吖閱讀 596評論 0 0
  • 搬運學習,非原創(chuàng) Promise 的含義 Promise對象有以下兩個特點。 (1)對象的狀態(tài)不受外界影響。Pro...
    wsgdiv閱讀 273評論 0 0
  • 參考:阮一峰 promise 1.promise含義promise是異步編程的一種解決方案,比傳統(tǒng)的解決方案(回調(diào)...
    穎小李閱讀 301評論 0 0
  • 1.Promise 的含義 Promise 是異步編程的一種解決方案 Promise對象有以下兩個特點。 (1)對...
    黑云閱讀 534評論 0 5

友情鏈接更多精彩內(nèi)容