פונקציות Callback
חלק מהיחידה יסודות Node.js במסלול ה-Node.js של Coddy. שיעור 14 מתוך 24.
קריאת קובץ גדול אורכת זמן, ותוכנית שממתינה לו לא עושה בינתיים שום דבר אחר.
fs.readFile(path, 'utf8', callback) מתחיל את הקריאה וחוזר מיד. כשהקובץ נטען, Node קורא לפונקציית ה־callback שלך עם (err, text). הערך של err הוא null במקרה של הצלחה, ושגיאה אחרת, לכן צריך לבדוק אותו קודם. כל מה שזקוק לטקסט נמצא בתוך פונקציית ה־callback.
import fs from 'node:fs';
fs.readFile('poem.txt', 'utf8', (err, text) => {
if (err) {
console.log('No poem today');
return;
}
console.log(text.split('\n').length + ' lines');
});
console.log('Asked for the poem');Asked for the poem מודפס ראשון: השורה שאחרי readFile רצה בזמן שהקובץ עדיין נטען.
אתגר
קלcount.jsמדפיסReading..., אחר כך<n> notesמתוך פונקציית הקריאה החוזרת, ואזDone, גם כן מתוך פונקציית הקריאה החוזרת.- כשאי אפשר לקרוא את הקובץ, הוא מדפיס
Cannot read <file>במקום את מספר ההערות.
הריצו את node count.js, ואז את node count.js nothere.json.
נסו בעצמכם
import fs from 'node:fs';
const file = process.argv[2] ?? 'notes.json';
console.log('Reading...');
// קראו את הקובץ באמצעות fs.readFile ופונקציית callback.
// הדפיסו את מספר ההערות, ואז Done.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.