почему файловая система nodejs сначала считывает консоль, а затем считывает файл

#node.js #asynchronous #filesystems #fs

Вопрос:

Я могу читать файлы, используя файловую систему nodejs:

 const fs = require('fs');

fs.readFile('./assets/test1.txt', (err, data) => {
    if(err){
        console.log(err)
    }
    console.log(data.toString())
})

console.log('hello shawn!')
 

Зачем console.log('hello shawn!') сначала читать, а затем читать console.log(data.toString()) ?

Есть ли какие-либо другие вещи в файловой системе data , которые сначала читаются, а затем читаются ниже console ?

Ответ №1:

Это потому .readFile , что это асинхронная операция. Его последним параметром является функция обратного вызова, которая запускается после завершения операции. Я рекомендую прочитать что-нибудь об обратных вызовах и цикле событий.

Вы можете использовать синхронную версию функции readFileSync или использовать utils.promisify для преобразования функции обратного вызова в promise и использовать async / await, а затем пример.