gpt4 book ai didi

javascript - 为什么 Promise 的输出不是 "1 2 3"而是 "1 3 2"?

转载 作者:行者123 更新时间:2023-12-02 16:20:25 24 4
gpt4 key购买 nike

a = function() {
return new Promise(function(resolve, reject) {
console.log(1);
resolve('next');
}).then(function() {
console.log(2);
return;
});
};

b = function() {
console.log(3);
};

a().then(b());

我认为解析“next”后,它会调用输出“2”的函数,我无法理解为什么“console.log(3)”首先发生(异步?)。我想知道我误解了哪一部分关于Promise的使用。

最佳答案

a().then(b());

调用a,它设置了promise。在构造函数中设置时会记录 1。当您执行 b() 时,会调用 b,从而记录 3。您传递给 then 的内容不是 b 函数 ,而是调用 b 返回的结果(这是 undefined )。然后,当您解决 promise 时,它会记录 2

您的代码应该类似于“1 2 3”。

a().then(b);

关于javascript - 为什么 Promise 的输出不是 "1 2 3"而是 "1 3 2"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35809226/

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