node.js odczytuje nieszczęścia

Poniższy fragment kodu tworzy plik tekstowy, a następnie odczytuje go, nadpisuje i odczytuje ponownie. Oprócz utworzenia pliku trzy operacje we / wy są wykonywane przy użyciu async readFile Node.js i writeFile.

Nie rozumiem, dlaczego powraca pierwszy odczytżaden błąd alebrak danych zarówno. Wynikiem tego kodu jest:

Startowy...Gotowe.pierwszy odczyt zwrócił PUSTE dane!napisz skończył OKdrugi odczyt zwrócił dane: zaktualizowany tekst

Nawet gdyby operacje miały się odbyć w dowolnej kolejności (ze względu na ich asynchroniczną naturę), NIE spodziewałbym się uzyskać obiektu „puste dane”.

Jakieś pomysły, dlaczego otrzymuję puste dane podczas czytania pliku (i bez błędu)?

Czy jest coś, co mogę zrobić, aby upewnić się, że zawartość pliku jest odczytywana?

<code>var fs = require('fs');
var fileName = __dirname + '/test.txt';

// Create the test file (this is sync on purpose)
fs.writeFileSync(fileName, 'initial test text', 'utf8');


console.log("Starting...");

// Read async
fs.readFile(fileName, 'utf8', function(err, data) {
    var msg = "";
    if(err)
        console.log("first read returned error: ", err);
    else {
        if (data === null) 
            console.log("first read returned NULL data!");
        else if (data === "") 
            console.log("first read returned EMPTY data!");
        else
            console.log("first read returned data: ", data);
    }
});


// Write async
fs.writeFile(fileName, 'updated text', 'utf8', function(err) {
    var msg = "";
    if(err)
        console.log("write finished with error: ", err);
    else
        console.log("write finished OK");
});


// Read async
fs.readFile(fileName, 'utf8', function(err, data) {
    var msg = "";
    if(err)
        console.log("second read returned error: ", err);
    else
        if (data === null) 
            console.log("second read returned NULL data!");
        else if (data === "") 
            console.log("second read returned EMPTY data!");
        else
            console.log("second read returned data: ", data);
});


console.log("Done.");
</code>

questionAnswers(1)

yourAnswerToTheQuestion