Какая часть синтаксиса предоставляет информацию о том, что эта функция должна работать в другом потоке и быть неблокирующей?
Рассмотрим простой асинхронный ввод-вывод в node.js
var fs = require('fs');
var path = process.argv[2];
fs.readFile(path, 'utf8', function(err,data) {
var lines = data.split('\n');
console.log(lines.length-1);
});
Что именно делает трюк, что это происходит в фоновом режиме? Может ли кто-нибудь объяснить это точно или вставить ссылку на какой-то хороший ресурс? Везде, где я смотрел, есть много информации о том, что такое обратный вызов, но никто не объясняет, почему он действительно работает.
Это не конкретный вопрос о node.js, он об общей концепции обратного вызова на каждом языке программирования.
EDIT:
Вероятно, приведенный ниже пример не лучший. Поэтому не будем рассматривать этот фрагмент кода node.js. Я прошу в целом - что делает трюк, который программа продолжает выполнять при вызове функции обратного вызова. Что такое синтаксис что делает концепцию обратного вызова неблокирующей?
Спасибо заранее!