Sono un principiante JavaScripter e non ho alcuna reale conoscenza di ciò che accade all'interno del motore V8.
Detto questo, mi sto davvero godendo le mie prime incursioni nell'ambiente node.js ma trovo che sto costantemente usando events.EventEmitter () come mezzo per emettere eventi globali in modo da poter strutturare i miei programmi per adattarli a un osservatore-osservatore modello simile a quello in cui scriverei dire un programma Objective-C o Python.
Mi ritrovo a fare sempre cose del genere:
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');
Quindi, in effetti, sto solo strutturando il codice node.js "asincrono" in codice che fa le cose nell'ordine che mi aspetto, invece sto piuttosto "codificando all'indietro" se questo ha senso. Ci sarebbe qualche differenza nel fare questo in un modo pesantemente richiamato, sia dal punto di vista delle prestazioni che dal punto di vista della filosofia? È meglio fare la stessa cosa usando i callback invece degli eventi?