Promises.all() -如何检查是否所有返回undefined



在下面的代码中,我想检查promisesArray是否返回任何数据。

const promisesArray = [this.loadData1(),this.loadData2()]
Promise.all(promisesArray).then(() => {
console.log('promises.all callback -> ', promisesArray[0])
}

上述console.log可以产生以下结果:

Promise {<fulfilled>: undefined}
[[Prototype]]: Promise
[[PromiseState]]: "fulfilled"
[[PromiseResult]]: undefined

如果我没有指定索引0,它会重复传递给Promises.all的两个函数调用的相同输出。

我试图在两个响应中访问undefined值,但不确定如何与每个键是一个多维数组。

如果有人对如何轻松检查两个函数是否导致undefined有任何想法,我将非常感激。

Promise.all(promisesArray)
.then((res) => res.every((r) => r === undefined))
.then((isUndefined) => {
// if isUndefined is true then all promises returned undefined
});

使用async/await语法:

const results = await Promise.all([this.loadData1(),this.loadData2()]);
if (results.every(r => r === undefined)) {
console.log('No data!');
}

最新更新