【发布时间】:2019-03-16 12:14:08
【问题描述】:
我有一个代表教室的 Node.js 应用程序。我使用的是节点版本 11.11.0。这个应用程序有两个文件:index.js 和 student.js。相关代码如下所示:
index.js
const EventEmitter = require('events');
const Student = require('./student');
async function start() {
eventEmitter.on('newListener', (event, listener) => {
console.log(`Added ${event} listener.`);
});
eventEmitter.on('handRaised', (question) => {
console.log(question);
});
for (let i=0; i<10; i++) {
let student = new Student(`Student #${i+1}`);
student.attend();
}
}
start();
student.js
'use strict';
const EventEmitter = require('events');
class Student {
constructor(name) {
this.name = name;
}
attend() {
// simulate a student randomly asking a question within 10 minutes
let minutes = (Math.floor(Math.random() * 10) + 1) * 60000;
setTimeout(function() {
EventEmitter.emit('handRaised', 'What is the 2 + 3?');
}, minutes);
}
}
module.exports = Student;
当我运行它时,我收到一个错误,上面写着EventEmitter.emit is not a function。我已经尝试了几种变体,但没有任何运气。我做错了什么?
【问题讨论】:
标签: javascript node.js eventemitter