我正在尝试让第二个函数等待第一个函数完成。在下面的示例中,我无法实现这一点。当探索async/await时,有人说执行顺序将是顺序的。然而,在这里似乎并非如此。
function one() {
setTimeout(() => {
console.log('Hi')
}, 5000)
}
function two() {
setTimeout(() => {
console.log('Bye')
}, 2000)
}
async function doAll() {
await one();
await two();
}
async function demo() {
await doAll();
}
demo()
输出
Bye
Hi
在这个例子中,由于第二个函数所需的时间较少,在打印
'Hi'
之前,先打印了'Bye'
。但是我希望确保第一个函数执行完毕后,才会执行第二个函数。
Promise.all([one, two])
执行完毕? - Roko C. Buljanawait
与Promise
配合使用。你的两个函数都没有返回Promise
。await one()
没有意义。 - Yury Tarabanko