Я початківець JavaScripter і не маю реальних знань, що відбувається всередині двигуна V8.
Сказавши це, я дуже насолоджуюся своїми ранніми переглядами в середовищі node.js, але виявляю, що я постійно використовую події.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 в код, який робить речі в тому порядку, який я очікував, натомість я наче "кодую назад", якщо це має сенс. Чи буде якась різниця робити це у важкому зворотному режимі, або з точки зору продуктивності, або з філософією? Чи краще робити те ж саме, використовуючи зворотні дзвінки замість подій?