Асинхронная обработка заказов с таймаутом
TypeScript
Средний
async
Задача «Асинхронная обработка заказов с таймаутом»
Напишите асинхронную функцию processOrders, которая принимает массив объектов заказов (каждый с полями id: number и delay: number). Для каждого заказа создайте асинхронную операцию, которая выполняется через delay миллисекунд (используйте setTimeout). Если операция не завершилась за 1000 мс, она должна быть отклонена с ошибкой 'Timeout'. Функция должна возвращать массив результатов в порядке исходных заказов: для успешных — {id, status: 'ok'}, для отклонённых — {id, status: 'timeout'}. Используйте Promise.allSettled и вспомогательный промис с таймаутом.
Формат ввода
Первая строка — число n (количество заказов). Затем n строк, каждая содержит два числа: id и delay.
Формат вывода
n строк, каждая в формате: id status (ok или timeout).
Примеры
Пример 1
ВВОД
Hello World
ВЫВОД
3
Пример 2
ВВОД
Hello world
ВЫВОД
2
Пример 3
ВВОД
2
10 1200
20 800
ВЫВОД
10 timeout
20 ok
Пример 4
ВВОД
JavaScript
ВЫВОД
3
main.ts