Quel est le problème avec ce code ? Il signale une erreur dès qu'il est exécuté
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 ne peut être utilisé que dans des fonctions encapsulées asynchrones.
Tout comme le rendement, il ne peut être utilisé que dans la fonction générateur.
Ne l'ai-je pas dit à l'étage ? Jetez-le dans la fonction asynchrone.
await
只能在async
函数(函数,函数表达式,箭头函数) 中使用,所以你只需要写个async
函数把那段代码包起来就好了,我比较喜欢写main
fonction au lieu de s'exécuter directement dans la portée globaleDe plus, vous pouvez également utiliser l'expression
async
IIFE, telle que