gpt4 book ai didi

javascript - 具有多个值的 Promise.map

转载 作者:行者123 更新时间:2023-11-30 19:41:22 26 4
gpt4 key购买 nike

我有以下代码:

Promise.map(myValues, async myValue => {
const owner = await findOwner(myValue);

return sendMessage(owner);
})

现在我想了解如果我想为每个值发送两条消息,我该如何完成同样的事情:

Promise.map(myValues, async myValue => {
const owner = await findOwner(myValue);
/* I want both sendMessage and senMessageSpecific(owner) to happen but map expects just one return. How do I deal with this situation? */

sendMessage(owner);

sendMessageSpecific(owner);
})

如果在一张 map 中我希​​望能够返回多个 promise (在某些情况下),语法是什么?现在它显然不起作用,因为我做了一个返回,所以它永远不会进入第二个 promise 。

最佳答案

我假设您的两个消息函数返回 promise ,并且您希望 map 等待两者。在这种情况下,您可以将它们包装在 Promise.all 中。像这样:

Promise.map(myValues, async myValue => {
const owner = await findOwner(myValue);
return Promise.all([sendMessage(owner), sendMessageSpecific(owner)]);
})

或者,如果您不关心返回值,您可以像使用 findOwner 一样等待这两个函数。像这样:

Promise.map(myValues, async myValue => {
const owner = await findOwner(myValue);
await sendMessage(owner);
await sendMessageSpecific(owner);
})

两种方式都会发生这两种功能。不同之处在于,在第一种情况下,它们将并行发生,而在最后一种情况下,它们将一个接一个地发生。

关于javascript - 具有多个值的 Promise.map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55357588/

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