带超时的异步订单处理

TypeScript Medium async

任务 «带超时的异步订单处理»

编写一个异步函数 processOrders,它接收一个订单对象数组(每个对象包含字段 id: number 和 delay: number)。为每个订单创建一个异步操作,该操作在 delay 毫秒后执行(使用 setTimeout)。如果操作在 1000 毫秒内未完成,则该操作应被拒绝并返回错误 'Timeout'。函数应返回按原始订单顺序排列的结果数组:成功时返回 {id, status: 'ok'},被拒绝时返回 {id, status: 'timeout'}。使用 Promise.allSettled 和一个带超时的辅助 Promise。

输入格式

第一行是一个整数 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