Processamento assíncrono de pedidos com timeout
TypeScript
Medium
async
Tarefa «Processamento assíncrono de pedidos com timeout»
Escreva uma função assíncrona processOrders que recebe um array de objetos de pedidos (cada um com os campos id: number e delay: number). Para cada pedido, crie uma operação assíncrona que é executada após delay milissegundos (use setTimeout). Se a operação não for concluída em 1000 ms, ela deve ser rejeitada com o erro 'Timeout'. A função deve retornar um array de resultados na ordem dos pedidos originais: para os bem-sucedidos — {id, status: 'ok'}, para os rejeitados — {id, status: 'timeout'}. Use Promise.allSettled e uma promise auxiliar com timeout.
Formato de Entrada
A primeira linha contém o número n (quantidade de pedidos). Em seguida, n linhas, cada uma contendo dois números: id e delay.
Formato de Saída
n linhas, cada uma no formato: id status (ok ou timeout).
Exemplos
Exemplo 1
ENTRADA
Hello World
SAÍDA
3
Exemplo 2
ENTRADA
Hello world
SAÍDA
2
Exemplo 3
ENTRADA
2
10 1200
20 800
SAÍDA
10 timeout
20 ok
Exemplo 4
ENTRADA
JavaScript
SAÍDA
3
main.ts