Code Lab

Parallel requests

EasyAsync code5 min

The function load(id) loads a user and returns a promise with the user data. Write a function loadAll(ids, load) that starts loading all ids at once and returns a promise with an array of the results.

The results keep the order of ids, even when the answers arrive in another order.

Examples

await loadAll([1, 2], (id) => Promise.resolve('user ' + id))

Returns [ 'user 1', 'user 2' ]

Each id becomes the result of its own load.
await loadAll([], (id) => Promise.resolve(id))

Returns []

An empty list gives an empty array.

Source

Loading the editor...
  1. Order of ids, though the answers arrive out of order
  2. All three loads run at the same time

Hidden tests run on Submit.