<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          每日一題之手寫Promise.all和Promise.race

          共 1579字,需瀏覽 4分鐘

           ·

          2021-03-03 00:21

          手寫源碼題是近兩年面試常見的題目,比如對于Promise來說,可能面試官就會讓你手寫Promise.all或者Promise.race, 你能寫出來嗎?

          題目一

          請手動實(shí)現(xiàn)一個Promise.all,使得下面的測試代碼運(yùn)行正常

          Promise.myAll = function(promises) {
          // 請?jiān)诖颂幫晟拼a
          }
          // 測試代碼
          const promise1 = new Promise((_, reject) => {
          setTimeout(() => {
          reject(new Error('報(bào)錯了'))
          },2000)
          })
          const promise2 = new Promise(resolve => {
          setTimeout(() => {
          resolve('1')
          }, 1000)
          })

          const promise3 = new Promise(resolve => {
          setTimeout(() => {
          resolve('2')
          }, 999)
          })

          // 這個應(yīng)該輸出 ['1','2','3'] 順序是固定的
          Promise.myAll([promise2,promise3,'3']).then(res => {
          console.log(res)
          })

          // 這個會進(jìn)入到 catch
          Promise.myAll([promise1, promise2,promise3,'3']).then(res => {
          console.log(res)
          }).catch(error => {
          console.log('報(bào)錯了')
          })

          題目二

          請手動實(shí)現(xiàn)一個Promise.race,使得下面的測試代碼運(yùn)行正常

          Promise.myRace = function(promises) {
          // 請?jiān)诖颂幫晟拼a
          }
          // 測試代碼
          const promise1 = new Promise((_, reject) => {
          setTimeout(() => {
          reject(new Error('報(bào)錯了'))
          },2000)
          })
          const promise2 = new Promise(resolve => {
          setTimeout(() => {
          resolve('1')
          }, 1000)
          })

          const promise3 = new Promise(resolve => {
          setTimeout(() => {
          resolve('2')
          }, 999)
          })

          Promise.myRace([promise1, promise2, promise3]).then(res => {
          // 輸出2
          console.log(res)
          })

          Promise.myRace([promise1,'3', promise2, promise3]).then(res => {
          // 輸出3
          console.log(res)
          })

          關(guān)注數(shù):10億+ 文章數(shù):10億+
          粉絲量:10億+ 點(diǎn)擊量:10億+

           


          微信群管理員請掃描這里

          微信群管理員請掃描這里

          喜歡本文的朋友,歡迎關(guān)注公眾號 程序員哆啦A夢,收看更多精彩內(nèi)容

          點(diǎn)個[在看],是對小達(dá)最大的支持!


          如果覺得這篇文章還不錯,來個【分享、點(diǎn)贊、在看】三連吧,讓更多的人也看到

          瀏覽 74
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91爱爱网站 | 高清无码在线免费视频 | 夜夜高潮夜夜爽精品视频 | 国产黑料视频你懂的 | 亚洲色大成网站www |