عندما يفشل Promise
جزء من قسم أساسيات Node.js في رحلة Node.js على Coddy. الدرس 20 من 33.
قد يفشل الوعد أيضًا، مثلًا عندما لا يكون الملف موجودًا. يُسمّى ذلك رفضًا. يوفّر .catch الشيفرة التي تُنفَّذ عند الفشل. ويُنفَّذ .finally بعد النجاح أو الفشل، وهذا مفيد لعرض رسالة ختامية.
readFile('weather.txt', 'utf8')
.then((text) => console.log(text))
.catch(() => console.log('No file'))
.finally(() => console.log('Finished'));عند فشل القراءة، لا يُستدعى رد النداء الخاص بالنجاح. يطبع المثال No file ثم Finished. يجب أن تكون رسالة الفشل داخل catch، كي لا تُطبع عند نجاح القراءة.
التحدي
سهلشغّل practice.js أولًا: يتسبب الملف المفقود في حدوث خطأ ENOENT غير معالَج.
أبقِ على دالة الاستدعاء عند نجاح القراءة. أضف .catch لطباعة No notes yet عند الفشل، ثم .finally لطباعة Done في كلتا الحالتين. عند عدم تمرير أي وسيطات، تكون الأسطر No notes yet وDone. جرّب note.txt: ستكون الأسطر Buy milk وDone.
جرّب بنفسك
import { readFile } from 'node:fs/promises';
readFile(process.argv[2] ?? 'missing.txt', 'utf8').then((text) => console.log(text));
جميع دروس أساسيات Node.js
1تشغيل JavaScript على Node
مرحبًا يا Nodeقراءة الأمروسائط سطر الأوامرالأوامر4البرمجة غير المتزامنة في Node
استخدام نتيجة دالة الاستدعاءدوال الاستدعاءنتيجة Promiseعندما يفشل Promiseالوعودانتظار قيمةAsync وAwaitقراءتان مستقلتانPromise.allحلقة الأحداثالمؤقتاتتدرّب بنفسك: Playground لـ Express