国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

promise以及async、await學(xué)習(xí)總結(jié)

zero / 2732人閱讀

Promise/async、await幫我們解決了什么
它給我們提供了一種新的異步編程解決方案,同時避免了困擾已久的回調(diào)地獄
// 異步的處理可能會產(chǎn)生這樣的回調(diào)地獄(第二個異步操作和第一個異步的結(jié)果有關(guān)系)
let Ajax = function(data, success, error){
  $.ajax({
      data: data,
      success: function(res){
        success(res)
      },
      error: function(err){
        error(err)
      }
  })
}
Ajax(data,function(res){
  Ajax(data,function(res){
    // 繼續(xù)循環(huán)回調(diào)
  },function(err){})
},function(err){})
// 看看promise的處理方式
let promise = function (data) {
  return new Promise((resolve,reject) => {
      $.ajax({
          data: data,
          success: function(res){
              resolve(res)
          },
          error: function(err){
              reject(err)
          }
      })
  })
}
let data = {} // ajax請求參數(shù)
promise(data).then((res) => {return promise(res)}).catch(err => console.log(err)).then(res => console.log(res))
// async 、await的處理方式使得異步操作更方便
(async function(){
let res = await promise(data)
let resp = await promise(res)
console.log(resp)
})()
Promise的方法總結(jié) Promise.prototype.then() Promise.prototype.catch() Promise.prototype.finally() Promise.all()
# 當(dāng)存在多個沒有相關(guān)性的異步操作時想一次性得到所有結(jié)果,可以使用promise.all()
Promise.all([p1,p2,p3])
只有當(dāng)所有異步操作狀態(tài)變?yōu)閞esolve的時候
返回所有值得數(shù)組
當(dāng)有一個返回reject的時候
返回值為第一個reject的值
Promise.race()
# 當(dāng)存在多個沒有相關(guān)性的異步操作時,想要獲得返回速度最快的異步操作采用
Promise.race([p1,p2,p3])
該方法返回第一個有返回值的異步操作的返回值(resolve或者reject)
Promise.race([new Promise((resolve, reject) => {
  console.log("init p1")
  setTimeout(()=>{
    console.log("init p1 +")
    resolve("p1")
  },2000)
}),new Promise((resolve, reject) => {
  console.log("init p2")
  setTimeout(()=>{
    console.log("init p2 +")
    resolve("p2")
  },1000)
})]).then(res=>{console.log(res)})
使用場景:設(shè)定一個請求的超時時間
Promise.race([new Promise((resolve,reject)=>{
    setTimeout(()=>{
        resolve("1")
    },2000)
}),new Promise((resolve,reject)=>{
    setTimeout(()=>{
        reject(new Error("time out"))
    },1000)
})]).then((res=>console.log(res)))
Promise.resolve()
Promise.resolve("111").then(res=>console.log(res))
Promise.reject()
Promise.reject("err").catch(res=>console.log(res))
Promise.try()[目前只是一個提案]
# 【使用時機(jī)】對于一個方法如果不知道是同步異步方法,但是想要用then來做后續(xù)操作,同時希望同步方法同步執(zhí)行,異步方法異步執(zhí)行。
# 等價方案
(async () => f())()
.then(res=>console.log(res))
.catch(err=>console.log(err))
async需要注意什么
錯誤的捕獲
const f = () => console.log("now")
(async () => f())()
# async 會吃掉f()的錯誤,可以通過promise.catch()來捕獲
(async () => f())()
.then(res=>console.log(res))
.catch(err=>console.log(err))
參考

Promise
async/await

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/94108.html

相關(guān)文章

  • promise以及asyncawait學(xué)習(xí)總結(jié)

    Promise/async、await幫我們解決了什么 它給我們提供了一種新的異步編程解決方案,同時避免了困擾已久的回調(diào)地獄 // 異步的處理可能會產(chǎn)生這樣的回調(diào)地獄(第二個異步操作和第一個異步的結(jié)果有關(guān)系) let Ajax = function(data, success, error){ $.ajax({ data: data, success: function...

    mist14 評論0 收藏0
  • promise以及asyncawait學(xué)習(xí)總結(jié)

    Promise/async、await幫我們解決了什么 它給我們提供了一種新的異步編程解決方案,同時避免了困擾已久的回調(diào)地獄 // 異步的處理可能會產(chǎn)生這樣的回調(diào)地獄(第二個異步操作和第一個異步的結(jié)果有關(guān)系) let Ajax = function(data, success, error){ $.ajax({ data: data, success: function...

    fuchenxuan 評論0 收藏0
  • ES6-7

    摘要:的翻譯文檔由的維護(hù)很多人說,阮老師已經(jīng)有一本關(guān)于的書了入門,覺得看看這本書就足夠了。前端的異步解決方案之和異步編程模式在前端開發(fā)過程中,顯得越來越重要。為了讓編程更美好,我們就需要引入來降低異步編程的復(fù)雜性。 JavaScript Promise 迷你書(中文版) 超詳細(xì)介紹promise的gitbook,看完再不會promise...... 本書的目的是以目前還在制定中的ECMASc...

    mudiyouyou 評論0 收藏0
  • 重學(xué)前端學(xué)習(xí)筆記(十七)--Promise里的代碼為什么比setTimeout先執(zhí)行?

    摘要:版本以及之前,本身還沒有異步執(zhí)行代碼的能力,宿主環(huán)境傳遞給引擎,然后按順序執(zhí)行,由宿主發(fā)起任務(wù)。采納引擎術(shù)語,把宿主發(fā)起的任務(wù)稱為宏觀任務(wù),把引擎發(fā)起的任務(wù)稱為微觀任務(wù)。基本用法示例的回調(diào)是一個異步的執(zhí)行過程。 筆記說明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時間開的一個專欄,每天10分鐘,重構(gòu)你的前端知識體系,筆者主要整理學(xué)習(xí)過程的一些要點筆記以及感悟,完整的...

    pinecone 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<