معالجة الطلبات غير المتزامنة مع مهلة زمنية
TypeScript
Medium
async
مهمة «معالجة الطلبات غير المتزامنة مع مهلة زمنية»
```html
اكتب دالة غير متزامنة processOrders، تأخذ مصفوفة من كائنات الطلبات (كل كائن يحتوي على الحقول id: number و delay: number). لكل طلب، قم بإنشاء عملية غير متزامنة يتم تنفيذها بعد delay ميلي ثانية (استخدم setTimeout). إذا لم تكتمل العملية خلال 1000 مللي ثانية، يجب رفضها مع الخطأ 'Timeout'. يجب أن تعيد الدالة مصفوفة من النتائج بنفس ترتيب الطلبات الأصلية: للطلبات الناجحة — {id, status: 'ok'}، وللطلبات المرفوضة — {id, status: 'timeout'}. استخدم Promise.allSettled ووعد مساعد مع مهلة زمنية.
```
اكتب دالة غير متزامنة 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