Home > Mobile >  Promises.all() - how to check if all return undefined
Promises.all() - how to check if all return undefined

Time:05-02

In the following code, I want to check if the promisesArray returns any data.

const promisesArray = [this.loadData1(),this.loadData2()]

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

The above console.log can produce the following:

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

If I do not specify index 0, it repeats the same output for both function calls passed to Promises.all.

I am trying to access the undefined value in both the responses but not sure how to with with each key being a multi-dimensional array.

If anyone has any ideas on how to easily check if both functions result in undefined I would be very grateful.

CodePudding user response:

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

CodePudding user response:

Using async / await syntax:

const results = await Promise.all([this.loadData1(),this.loadData2()]);

if (results.every(r => r === undefined)) {
  console.log('No data!');
}

  • Related