Ad

Combine Multiple Await Variables Into One Array

Im having trouble combining two async variables into one array:

My code:

async function fetchMenus ({actions, state}) {
      return actions.theme.fetchToken().then(async () => {
        const items = await fetch("url", {
          method: "GET",
          headers: {
              Authorization: `Bearer ${state.theme.token}`,
          },
        });
        const menu = await fetch("url", {
          method: "GET",
          headers: {
              Authorization: `Bearer ${state.theme.token}`,
          },
        });

        return [menu.json(), items.json()];
      });
    };

As a response i recieve 2 fulfilled promises, but i want to receive the results. How can i solve this?

enter image description here

Ad

Answer

You can do

Promise.all(fetchMenus(parameters).result).then((results) => {
 ... work with results
});

Promise.all puts an array of promises into a new promise, so to say.

It is typically used after having started multiple asynchronous tasks to run concurrently and having created promises for their results, so that one can wait for all the tasks being finished.

Ad
source: stackoverflow.com
Ad