首先簡單總結, 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會被中斷,以下函數