gpt4 book ai didi

javascript - 期望 2 个 Promise 的结果等于一件事(组合 2 个 Promise 数组)

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

我有两个 Promise,它们都返回数组

let promise1 = Promise.resolve(['one', 'two']);
let promise2 = Promise.resolve(['three', 'four']);

然后我希望这两个 promise 一起等于一个数组,如下所示:

expect(promise1.concat(promise2)).toEqual(['one', 'two', 'three', 'four']);

上面的代码经过了简化,我知道我可以执行 2 个 Expect 语句,但值可以在 Promise 1 或 Promise 2 之间发生变化。

我一直在乱搞 then block ,但无济于事......我怎样才能实现上面的expect语句呢?它不必是 concat,我只是想将这 2 个 Promise 数组组合成 1 个。

最佳答案

只需使用 Promise.all组合您的 promise ,然后使用 reduce() 将其结果累积到单个数组中:

const promise1 = Promise.resolve([1,2])
const promise2 = Promise.resolve([3,4])

Promise.all([promise1, promise2]).then(result => {
const combined = result.reduce((acc, result) => {
return acc.concat(result)
}, [])

console.log(combined)
})

这允许您组合任意数量的数组。

关于javascript - 期望 2 个 Promise 的结果等于一件事(组合 2 个 Promise 数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49067850/

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