我有一个已解决 Promise 的数组:
[Promise, Promise, Promise, ...]
每个 Promise 解决后都会返回一个值。我该如何创建一个函数,使其返回这个 Promise 数组的映射,将每个 Promise 解决的值作为对应的值?
[value_1, value_2, value_3, ...]
这是我迄今为止的最接近答案:
const mapPromisesToValues = promises => {
Promise.all(promises, values => {
// how do I return these values from mapPromisesToValues
return values
});
}
更具体地说,我之所以问这个问题是因为我有一组 Promise 数组的集合。
const collection_1 = [Promise, Promise, Promise, ...];
const collection_2 = [Promise, Promise, Promise, ...];
//...
我想将这些映射为一组值的Promise批量处理成一个对象,并将其传递给另一个函数(在这种情况下是React的setState函数),该函数仅被调用一次。
this.setState({
...this.state,
values_1,
values_2,
//...
});
Promise.all()
,创建了一个Promise.all
的集合。Promise.all()
返回什么?这让我很头疼。 - jchi2241then
函数的参数是一个值数组 - 这是某种形式的解构吗?我不知道你也可以解构数组。 - jchi2241Promise.all
等待数组中的所有Promise完成。由于我们正在处理多个数组,所以我们使用另一个Promise.all
等待这些Promise.all
中的所有Promise完成。最终的结果是一个数组的数组。你说得没错,当我们使用这个数组的数组时,我们使用解构将它们作为单独的数组参数而不是单个数组的数组参数接收。 - T.J. Crowder