javascript – 为什么使用`eventEmitter`而不是promise

我在一本书中找到了以下例子:

function User() {
    EventEmitter.call(this);
    this.addUser = function (username, password) {
        // add the user
        // then emit an event
        this.emit("userAdded", username, password);
    };
}

var user = new User();
var username = "colin";
var password = "password";

user.on("userAdded", function(username, password) {
    console.log("Added user " + username);
});

user.addUser(username, password);

在我看来,使用EventEmitter在这里完全是多余的.承诺会做得更好:

function User() {
    this.addUser = function (username, password) {
        return new Promise(function (resolve) {
            // add the user
            // and resolve
            resolve();
        });
    };
}

和用法:

user.addUser(username, password).then(function(username, password) {
    console.log("Added user " + username);
});

使用EventEmitter是否比使用Promises有任何优势,或者它只是Promise不可用时的代码?或者在node.js中不欢迎这种风格?

解决方法:

EventEmitter和Promise之间的主要区别在于,Promise只能实现一次,而事件可以被触发任意次数

上一篇:npm install 报错(npm ERR! errno -4048,Error: EPERM: operation not permitted,)解决方法


下一篇:sql调优2