ฉันเป็น 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 เป็นรหัสที่ทำสิ่งต่าง ๆ ตามที่ฉันคาดไว้ แต่ฉันกลับ "เขียนโค้ดถอยหลัง" ถ้ามันเหมาะสม จะมีความแตกต่างในการทำเช่นนี้ในลักษณะการโทรกลับหนักอย่างใดอย่างหนึ่งประสิทธิภาพการทำงานหรือปรัชญาที่ชาญฉลาด? มันจะดีกว่าที่จะทำสิ่งเดียวกันโดยใช้การโทรกลับแทนเหตุการณ์?