# Wait for all promises to resolve in JavaScript

> Learn how to start multiple promises at once and wait for all of them to resolve using await Promise.all(), instead of awaiting each one after another.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2021-02-05 | Topics: [JavaScript](https://flaviocopes.com/tags/js/) | Canonical: https://flaviocopes.com/javascript-resolve-all-promises/

Sometimes we need to wait for a promise to resolve, and we also need to wait for another promise to resolve.

Something like this:

```js
const values = await store.getAll()
const keys = await store.getAllKeys()
```

This _works_ but it's not ideal. First we're waiting for the first call to be resolved, then we start the second.

I want to start both first, then I want to wait until both finished. Not a millisecond more.

The solution is to wrap all in a `await Promise.all()` call, like this:

```js
const data = await Promise.all([store.getAll(), store.getAllKeys()])
```

Once this is resolved, we can access the first call value using `data[0]` and the second call return value with `data[1]`.

If you want to see how `Promise.all()` behaves compared to the other combinators, try the [promise combinators tool](https://flaviocopes.com/tools/promise-combinators/).
