gpt4 book ai didi

javascript - 事件循环和 promise

转载 作者:行者123 更新时间:2023-12-01 16:04:17 25 4
gpt4 key购买 nike

当我在控制台中运行以下代码时,我得到的输出为:

"start"
"Promise 2"
"end"
"Promise 1"

console.log("start");
Promise.resolve().then(
() => console.log("Promise 1")
).then(console.log("Promise 2"));
console.log("end");

谁能给我解释一下为什么在“Promise 1”和“end”之前打印“Promise 2”?

最佳答案

.then() 的参数应该是一个函数。但是你写的是.then(console.log("Promise 2")),而console.log("Promise 2")是函数调用,不是函数。它会立即执行,因此会立即显示日志消息,而不是在解决 promise 时显示。

将其更改为一个函数,就像您在 console.log("Promise 1") 周围设置的那样,它们将按预期顺序执行。

console.log("start");
Promise.resolve().then(
() => console.log("Promise 1")
).then(() => console.log("Promise 2"));
console.log("end");

end 首先被记录,因为 promise 解析是异步的。

关于javascript - 事件循环和 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62028554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com