gpt4 book ai didi

javascript - 将 promise 与 promise all 链接起来会导致意外的执行顺序

转载 作者:搜寻专家 更新时间:2023-11-01 05:27:15 26 4
gpt4 key购买 nike

为什么下面的代码在 1, 2, 3 之前打印 baz, done

const bar = () => Promise.resolve([1, 2, 3]);
const cat = e => {
console.log(e);
return Promise.resolve(e);
};
const foo = () =>
bar()
.then(arr => Promise.all(arr.map(e => cat(e))))
.then(console.log("baz"));

foo().then(console.log("done"));

最佳答案

您正在立即执行 console.log() 而不是将其传递给 .then() 中的回调函数。这将做到:

const bar = () => Promise.resolve([1, 2, 3]);

const cat = e => {
console.log(e);
return Promise.resolve(e);
};

const foo = () =>
bar()
.then(arr => Promise.all(arr.map(e => cat(e))))
.then(() => console.log("baz"));

foo().then(() => console.log("done"));

关于javascript - 将 promise 与 promise all 链接起来会导致意外的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58289499/

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