Я новичок в JavaScripter и не знаю, что происходит внутри движка V8.
Сказав это, я действительно наслаждаюсь своими ранними набегами в среду node.js, но я нахожу, что я постоянно использую events.EventEmitter () в качестве средства для генерации глобальных событий, чтобы я мог структурировать свои программы так, чтобы они соответствовали наблюдателю-уведомителю. шаблон похож на то, что я написал бы, скажем, в программе Objective-C или Python.
Я всегда делаю такие вещи:
var events = require('events');
var eventCenter = new events.EventEmitter();
eventCenter.on('init', function() {
var greeting = 'Hello World!';
console.log('We're in the init function!);
eventCenter.emit('secondFunction', greeting);
});
eventCenter.on('secondFunction', function(greeting) {
console.log('We're in the second function!);
console.log(greeting);
eventCenter.emit('nextFunction');
});
eventCenter.on('nextFunction', function {
/* do stuff */
});
eventCenter.emit('init');
Так что, по сути, я просто структурирую код «async» node.js в код, который выполняет все в ожидаемом порядке, вместо этого я как бы «кодирую задом наперед», если это имеет смысл. Будет ли какая-то разница в том, чтобы делать это в режиме обратного вызова, либо с точки зрения производительности, либо с точки зрения философии? Что лучше сделать, используя обратные вызовы вместо событий?