在使用Async/AWait运行一些我无法解决的函数时,我看到意外的输出.
代码如下所示:
const delayToRun = async() => {
console.log('first delay');
let p = await new Promise((resolve, reject) => {
setTimeout(() => resolve('Done'), 2000);
});
console.log('second delay');
return p;
};
const start = async() => {
for (let i = 0; i < 2; i++) {
const res = await delayToRun();
console.log(res);
console.log('--------------------------------');
}
};
start();
start();
输出:
first delay
first delay
second delay
Done
--------------------------------
first delay
second delay
Done
--------------------------------
first delay
second delay
Done
--------------------------------
second delay
Done
--------------------------------
对我来说,所有块都显示:第一个、第二个、完成. 但第一个似乎是在开始时开始,然后在结束时完成.
有谁能解释一下这件事吗?
谢谢