我需要编写一个命令行实用程序。根据用户的选择,实用程序将运行某种算法。算法必须是模块化的,并且由一组指定的任务组成。任务将以模块的形式实现,将通过事件模型链接。
下面的一个简单示例
// main.js
'use strict';
const EventEmitter = require('events');
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
let _first = require('./first');
let _second = require('./second');
let map = new Map();
map.set('first', new _first(myEmitter));
map.set('second', new _second(myEmitter));
myEmitter.emit('start', 3);
// first.js
module.exports = function First(Emiter) {
Emiter.on('start', (x) => {
console.log('an event occurred! in First. get: ' + x++);
Emiter.emit('next', x);
});
}
// second.js
module.exports = function Second(Emiter) {
Emiter.on('next', (x) => {
console.log('an event occurred! in Second, get: ' + x);
});
}
这是对的吗?在构造函数中是否有任何负面使用处理函数?