【问题标题】:Why use `eventEmitter` instead of promise为什么使用`eventEmitter`而不是promise
【发布时间】:2017-04-29 16:12:10
【问题描述】:

我在正在阅读的书中找到了以下示例:

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 是完全多余的。 Promise 会做得更好:

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 有任何优势,或者它只是Promises 不可用时的代码?还是node.js不欢迎这种风格?

【问题讨论】:

  • 如果您想在使用同一个 hanfler 添加多个用户时收到通知怎么办? Promise 不会在那里工作。一个 Promise 只能用一个值解决一次。
  • 对我来说,Eve​​ntEmitter 和 Promise 的主要区别在于,Promise 只能实现一次,而事件可以触发任意次数。

标签: javascript node.js promise eventemitter


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-10-26
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多