Асинхронная обработка заказов с таймаутом

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