Menu
CoddyTech

دوال الاستدعاء

جزء من قسم أساسيات 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 بينما لا يزال الملف قيد التحميل.

challenge icon

التحدي

سهل
  • يطبع 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.
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس أساسيات Node.js