معالجة الطلبات غير المتزامنة مع مهلة زمنية

TypeScript Medium async

مهمة «معالجة الطلبات غير المتزامنة مع مهلة زمنية»

```html
اكتب دالة غير متزامنة 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