這段程式碼問題在哪,一運行就報錯
var sleep = async function(para) {
return new Promise(function(resolve, reject) {
setTimeout(function() {
resolve(para * para)
}, 1000)
})
}
var errorSleep =async function(para) {
return new Promise(function(resolve, reject) {
setTimeout(function() {
reject(' ErrorSleep')
}, 1000)
})
}
try {
var result1 = await sleep(1);
var result2 = await errorSleep(4);
var result3 = await sleep(1);
console.log('result1: ', result1)
console.log('result2: ', result2)
console.log('result3: ', result3)
} catch (err) {
console.log('err: ', err)
console.log('result1: ', result1)
console.log('result2: ', result2)
console.log('result3: ', result3)
}
await 只能在 async 包裝的函數裡面用。
就跟yield只能在generator函數裡面用一樣。
樓上不是說了嗎,丟到async函數裡。
await
只能在async
函數(函數,函數表達式,箭頭函數) 中使用,所以你只需要寫個async
函數把那段程式碼包起來就好了,我比較喜歡寫main
函數而不是直接在全域作用域內運行另外也可以使用
async
IIFE 表達式,例如