【发布时间】:2022-02-04 23:17:00
【问题描述】:
尝试学习正确的 async/await JavaScript 以在序列中的早期函数将被延迟时按顺序运行函数(使用 setTimeout 进行模拟)。我没有得到预期的结果(仍然得到“第一”、“第二”、“这应该首先运行?” - 见代码)。
我错过了什么?我对此有错误的想法吗?
提前致谢!
const zeroFunction = () => {
setTimeout(() => {
return new Promise((resolve) => {
console.log("This should run first?");
resolve();
});
}, 2000)}
const firstFunction = () => {
return new Promise((resolve) => {
console.log("first");
resolve();
})
}
const secondFunction = () => {
return new Promise((resolve) => {
console.log("second");
resolve();
})
}
async function fnAsync() {
await zeroFunction();
await firstFunction();
secondFunction();
}
fnAsync();
【问题讨论】:
-
zeroFunction什么也不返回。它应该返回一个 Promise。