Menu
CoddyTech

כש-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, כך שקריאה מוצלחת לא תדפיס אותה.

challenge icon

אתגר

קל

הריצו תחילה את 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

תרגלו בעצמכם: Express אונליין