כש-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קריאת הפקודהארגומנטים של שורת הפקודהפקודותתרגלו בעצמכם: Express אונליין