كيفية رفض (reject) الوعد (promise) بشكل صحيح عند استخدام async/await في TypeScript؟
مرحباً بالجميع! لقد بدأت مؤخراً في تعلم async/await في TypeScript وواجهت مشكلة. لدي دالة يجب أن تنفذ عملية غير متزامنة (asynchronous)، ولكن في ظروف معينة أحتاج إلى إرجاع خطأ (reject). المشكلة أنني لا أفهم كيفية "رفض" الوعد (promise) بشكل صحيح عند استخدام صيغة async/await.
إليك مثال على الكود الخاص بي:
```typescript
async function fetchUserData(userId: string): Promise {
// أريد رفض الوعد إذا كان userId فارغاً
if (!userId) {
// كيف يمكنني عمل reject بشكل صحيح هنا؟
}
const response = await fetch(`/api/users/${userId}`);
return response.json();
}
```
أعلم أنه في Promise الكلاسيكي يمكن استدعاء reject()، ولكن في دالة async، return يكمل الوعد تلقائياً مع resolve. لقد جربت رمي خطأ باستخدام throw، لكن هذا يبدو غير أنيق. هل هناك طريقة أكثر صحة؟ أم أن throw هي الطريقة القياسية؟
أيضاً، كيف يمكن كتابة أنواع (types) لهذه الأخطاء بشكل صحيح بحيث يتعامل معها TypeScript؟