Что такое «обратный вызов» в node.js?В контексте Node.js «обратный вызов» (callback) — это функция, которая передается другой функции в качестве аргумента и вызывается после завершения выполнения этой функции. Важно отметить, что вызов происходит асинхронно, когда основная операция завершена. Это позволяет избежать блокировки выполнения программы, что особенно полезно для работы с операциями ввода-вывода, такими как чтение файлов, запросы в сеть и т.д.
Пример использования обратного вызова:
const fs = require('fs');
// Чтение файла асинхронно
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error("Ошибка при чтении файла:", err);
} else {
console.log("Содержимое файла:", data);
}
});
console.log('Эта строка выполнится до того, как файл будет прочитан.');
В этом примере функция
fs.readFile
читает файл, а функция обратного вызова передается третьим аргументом. Она срабатывает после завершения чтения файла, либо с ошибкой (`err`), либо с данными файла (`data`). Однако строка
console.log('Эта строка выполнится до того, как файл будет прочитан.')
выполнится до завершения чтения, благодаря асинхронной природе Node.js.
Основные моменты:
1.
Асинхронность: Обратные вызовы позволяют выполнять код без блокировки основного потока.
2.
Паттерн "Error-first": В Node.js часто используется паттерн обратного вызова с первым аргументом
err
, который указывает на наличие ошибки, а следующие аргументы содержат результат выполнения операции.
✍️ @nodejs_lib