Menu
CoddyTech

Funkcje zwrotne

Część sekcji Podstawy Node.js ścieżki Node.js w Coddy. Lekcja 14 z 24.

Odczytanie dużego pliku zajmuje czas, a program, który czeka na jego wczytanie, w tym czasie nic innego nie robi.

fs.readFile(path, 'utf8', callback) rozpoczyna odczyt i od razu zwraca sterowanie. Gdy plik zostanie wczytany, Node wywoła twój callback z argumentem (err, text). err ma wartość null w przypadku powodzenia, a w przeciwnym razie zawiera błąd, więc najpierw go sprawdź. Wszystko, co wymaga tekstu, umieść wewnątrz callbacka.

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 wyświetli się jako pierwsze: wiersz po readFile wykonuje się, gdy plik jest jeszcze wczytywany.

challenge icon

Wyzwanie

Łatwy
  • count.js wypisuje Reading..., następnie <n> notes z wnętrza funkcji zwrotnej, a potem Done, również z funkcji zwrotnej.
  • Gdy nie można odczytać pliku, zamiast liczby wypisuje Cannot read <file>.

Uruchom node count.js, a następnie node count.js nothere.json.

Spróbuj swoich sił

import fs from 'node:fs';

const file = process.argv[2] ?? 'notes.json';

console.log('Reading...');
// Odczytaj plik za pomocą fs.readFile i funkcji zwrotnej.
// Wypisz liczbę notatek, a następnie Done.
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy Node.js