Bor*_*ald 0 javascript async-await
我试图理解为什么这段代码不像我期望的那样表现:
async function test() {
await setTimeout(() => {
console.log('done')
}, 1000)
console.log('it finished');
}
test();Run Code Online (Sandbox Code Playgroud)
这首先打印it finished,然后打印done。这段代码不应该在执行之前等待超时完成console.log('it finished');还是我误解了什么?
你只能有用await一个promise。
setTimeout返回一个超时 ID(一个数字),您可以传递给clearTimeout它来取消它。它不返回承诺。
你可以setTimeout用一个承诺来包装......
async function test() {
await new Promise( resolve => setTimeout(() => {
console.log('done');
resolve("done");
}, 1000));
console.log('it finished');
}
test();Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |