Implement parallel(tasks)
Write parallel(tasks) where tasks is an array of zero-argument functions, each returning a promise (not already-started promises, the functions themselves, so nothing starts until parallel calls them). All tasks start immediately; parallel resolves with their results in the same order as tasks, regardless of which finishes first. If any task rejects, parallel rejects.
await parallel([() => fetchUser(1), () => fetchUser(2)]);
// both requests start at the same time