Задача на асинхронность в js
Все привет! Несколько дней промучился с решение задачи по промисам, но к элегантному решению не пришел... Использовать setTimeout с различными таймингами є кажется тупо, но и вариант с Promise не могу что-то адекватное придумать. Помогите решить задачу и объяснить мене ее. Буду благодарен за любую помощь)) Используя известные средства асинхронного выполнения (setTimeout и Promise) и не изменяя вертикальный порядок вызова функций 2, 1, 4, 3 в исходном коде, внесите изменения в код таким образом, чтобы после полного завершения выполнения программы в массиве completionFlags содержалась последовательность ['1' , '2', '3', '4'].
Стартовый код:
const completionFlags = [];
async function asyncActions() {
// ========== Начало зоны редактирования ===============
action('2');
action('1');
action('4');
action('3');
// ========== Конец зоны редактирования ===============
}
function action(pos) {
completionFlags.push(pos);
}