gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 06:00:23 25 4
gpt4 key购买 nike

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

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

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 不欢迎这种风格?

最佳答案

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

关于javascript - 为什么使用 `eventEmitter` 而不是 promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41140769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com