Procesamiento asíncrono de pedidos con tiempo de espera

TypeScript Medium async

Tarea «Procesamiento asíncrono de pedidos con tiempo de espera»

Escriba una función asíncrona processOrders que reciba un array de objetos de pedidos (cada uno con los campos id: number y delay: number). Para cada pedido, cree una operación asíncrona que se ejecute después de delay milisegundos (use setTimeout). Si la operación no se completa en 1000 ms, debe ser rechazada con el error 'Timeout'. La función debe devolver un array de resultados en el orden de los pedidos originales: para los exitosos — {id, status: 'ok'}, para los rechazados — {id, status: 'timeout'}. Use Promise.allSettled y una promesa auxiliar con tiempo de espera.

Formato de entrada

La primera línea contiene el número n (cantidad de pedidos). Luego, n líneas, cada una contiene dos números: id y delay.

Formato de salida

n líneas, cada una en el formato: id status (ok o timeout).

Ejemplos

Ejemplo 1

ENTRADA
Hello World
SALIDA
3

Ejemplo 2

ENTRADA
Hello world
SALIDA
2

Ejemplo 3

ENTRADA
2 10 1200 20 800
SALIDA
10 timeout 20 ok

Ejemplo 4

ENTRADA
JavaScript
SALIDA
3
main.ts