<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      塞壬的歡歌

      導航

      ES6 學習筆記 3 --- Promise

      ES6(2015)

      異步解決方案 Promise

      ES5 回調 callback

      function load (src,callback){
          let script = document.creatElement('script')
          script.src = src // 次操作 是 引擎默認的異步
          script.onload = () => { callback(src) }
          document.head.append(script)
      }
      load('./1.js',test)
      
      function test(name){
          console.log(name)
      }
      test('tt')  // 先執行test() 后執行 load()
      
      load('./1.js',function(st){
           load('./2.js',function(st){
               load('./3.js',test(st))
           })
      }) // 嵌套回調 回調地獄
      

      ES6 promise

      function load(src){
          return new Promise((resolve,reject) =>{
              let script = document.creatElement('script')
          	script.src = src 
              script.onload = () => resolve(src)
              script.onerror = (err) => reject(err)
              document.head.append(script)
          })
      }
      load(./1.js)
          .then(()=>{return load(./2.js)},(err)=>{console.log(err)})
          .then(()=>{return load(./3.js)},(err)=>{console.log(err)})  // 平行調用
      

      Promise 對象 基本原理

      new Promise()  // 會有 pending 狀態 掛起
      resolve() // 會有 fulfilled 狀態 
      reject() // 會有 rejected 狀態 狀態互斥
      

      多個異步調用,逐個調用 .then()

      語法 : promise.then(onFulfilled,onRejected) 傳入 兩個函數

      如果不是函數 將會是一個空的Promise對象.

      // 期望 load 1 2 3 順序執行, 一步報錯 后續停止執行 
      // 正規寫法
      load(./1.js)   //返回 新的 Promisee對象 調去then
          .then(()=>{return load(./2.js)},(err)=>{console.log(err)}) // 使用 load1 結果的 promise
          .then(()=>{return load(./3.js)},(err)=>{console.log(err)}) // 使用 loda2 結果的 promise
      // 不正規 但可執行  
      load(./1.js) 
          .then(load(./2.js)) // 使用 laod1 結果的 promise
          .then(load(./2.js))  // 使用 空的promise ,因為 上次調用不符合 語法規定
      // 不正規 但可執行
      load(./1.js)   
          .then(()=>{load(./2.js)},(err)=>{console.log(err)}) // 使用 load1 結果的 promise
          .then(()=>{load(./3.js)},(err)=>{console.log(err)}) // 使用 空的promise ,因為,上次then沒有返回任何值 
      // 后2種 一旦 load2 報錯. load3 還會執行. 是錯誤的結果.
      // 第1中 一旦 load2 報錯. 將會阻斷 laod3 的執行 . 是期望的結果.
      

      返回值不是異步請求,而是同步的結果 .resolve() .reject()

      語法: Promise.resolve(value) Promise.reject(new Error())

      注意 是 靜態方法 Promise類直接調用的 類方法

      function test(key){
          if(key){
              return new Promise((resolve,reject)=>{
                  resolve(30)
              })
          } else if(key ===2){
              // retrun 42 會使 調用鏈斷掉, 所以 使用 靜態方法 resolve 處理正常信息使其繼續調用下個then
              return new Promise.resolve(42)
          }else {
              // retrun new Error  會使 調用鏈斷掉.所以 使用一個 靜態方法 reject 來處理錯誤 阻斷下次調用
              return new Promise.reject(new Error('sssss'))
          }
      }
      test(0).then((value) =>{console.log(value)},(err) => {console.log(err)})
      

      捕獲錯誤,并統一處理 .catch()

      load(./1.js)
          .then(()=>{ return load(./2.js)}) // 第二個 reject 函數沒有寫
       	.then(()=>{ return load(./3.js)})
      	.catch(err => console.log(err))  // 避免每次都寫 reject 方法
      

      并行異步調用:最后一個調用結束再執行.all()

      const p1 = load(./1.js)
      const p2 = load(./2.js)
      const p3 = load(./3.js)
      // 3個異步 不論調用快慢 最后全掉用完 就會執行
      Promise.all([p1,p2,p3]).then(value =>{console.log(value)}) 
      

      競爭異步調用:第一個調用結束就執行.race()

      const p1 = load(./1.js)
      const p2 = load(./2.js)
      const p3 = load(./3.js)
      // 3個異步 只執行 最快的那個
      Promise.race([p1,p2,p3]).then(value =>{console.log(value)}) 
      

      posted on 2020-04-05 23:22  塞壬無歡歌  閱讀(187)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 人妻综合专区第一页| 少妇高潮激情一区二区三| 精品国产一区二区三区麻豆| 黑人精品一区二区三区不| 国产亚洲精品久久综合阿香| 日本免费视频| 国产肥臀视频一区二区三区 | 亚洲一区二区av高清| 内射极品少妇xxxxxhd| 亚洲欧美不卡视频在线播放| 在线无码免费的毛片视频| 国产成人av三级在线观看| 熟女精品视频一区二区三区| 99久久无色码中文字幕| 国产不卡一区二区精品| 精品免费看国产一区二区| 久热这里有精品视频在线| 亚洲成av人片色午夜乱码| 在线天堂最新版资源| 免费久久人人爽人人爽AV| 国产成人精品亚洲日本片| 亚洲av第三区国产精品| 国产一区二区三区AV在线无码观看| 亚洲自拍偷拍激情视频| 久久精品女人的天堂av| 动漫av纯肉无码av在线播放| 高清破外女出血AV毛片| 成人免费A级毛片无码片2022| 黄页网站在线观看免费视频 | A三级三级成人网站在线视频| 国产自拍在线一区二区三区| 精品在线观看视频二区| 久久综合开心激情五月天| 下面一进一出好爽视频| 久久99久国产麻精品66| 国产永久免费高清在线| 国产va在线观看免费| 国产精品成人久久电影| 一个人在线观看免费中文www| 九九色这里只有精品国产| 欧美精品在线观看|