Async / Await 問題

Async/Await 的實踐

首先簡單總結, Async和Await 能夠將異步操做像寫同步操做那樣簡單promise

注意: await 所等待的函數必須返回對象爲Promise,若是不是 須要 return new promise 才能夠異步

 let promise = new Promise((resolve, reject) => {
  // 異步函數執行成功時執行回調,若resolve函數有帶參數,則該參數會傳遞給回調函數
  resolve()
  // 異步函數執行失敗時執行回調,若reject函數有帶參數,則該參數會傳遞給回調函數
  reject()
 })
 
 function setTime(time) {
     return new Promise((reslove)=>{
         setTimeout(() => {
             console.log(time)
             reslove() // 自執行成功函數
        }, time);
    })
 }
 
 function setTime(time) {
     return new Promise((res)=>{
         setTimeout(() => {
             console.log(time)
             res()
        }, time);
    })
 }
 
 let main = async function() {
     await setTime(100)
     console.log('執行到1')
     await setTime(1000)
     console.log('執行到2')
 }
 main()

這樣整個程序就能夠將異步按照同步的方法去運行了async

 

 

注意,必定要把須要回傳的參數放在reslove中,若是沒有 也要把reslove 執行一下,否則Promise會被中斷,以下函數

相關文章
相關標籤/搜索