Ich bin ein Anfänger von JavaScripter und habe keine wirklichen Kenntnisse darüber, was in der V8-Engine vor sich geht.
Trotzdem genieße ich meine frühen Streifzüge in die Umgebung von node.j sehr, benutze aber ständig events.EventEmitter (), um globale Ereignisse auszulösen, damit ich meine Programme so strukturieren kann, dass sie einem Notifier-Observer entsprechen Muster ähnlich dem, was ich in einem Objective-C- oder Python-Programm schreiben würde.
Ich mache immer Dinge wie diese:
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');
Tatsächlich strukturiere ich also den Code von 'async' node.js in Code, der die Dinge in der von mir erwarteten Reihenfolge ausführt, stattdessen "rückwärts", wenn das Sinn macht. Wäre es ein Unterschied, wenn Sie dies in Bezug auf Leistung oder Philosophie rückrufintensiv tun würden? Ist es besser, dasselbe mit Rückrufen anstelle von Ereignissen zu tun?