دوال الاستدعاء
جزء من قسم أساسيات Node.js في رحلة Node.js على Coddy. الدرس 14 من 24.
تستغرق قراءة ملف كبير وقتًا، والبرنامج الذي ينتظر قراءته لا يفعل شيئًا آخر في هذه الأثناء.
تبدأ fs.readFile(path, 'utf8', callback) القراءة وتعود فورًا. عند تحميل الملف، يستدعي Node دالة رد الاتصال لديك مع (err, text). تكون قيمة err هي null عند النجاح، وتكون خطأً خلاف ذلك، لذا تحقّق منها أولًا. ضع كل ما يحتاج إلى النص داخل دالة رد الاتصال.
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 ودالة ردّ نداء.
// اطبع عدد الملاحظات، ثم Done.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.