Реализуйте функцию promiseAll(promises), которая работает так же, как Promise.all:
const result = await promiseAll([
Promise.resolve(1),
Promise.resolve(2),
3
]);
// => [1, 2, 3]
Результаты нужно записывать по индексу results[i] = val, а не через push — промисы могут завершиться не в том порядке, в котором переданы.
Оборачивайте каждый элемент в Promise.resolve(p) — это позволяет передавать не только промисы, но и обычные значения (числа, строки).