您的位置:首页 > Web前端 > Node.js

Node.js之事件监听和发送

2017-06-16 18:21 453 查看

演示事件的发送和监听


const events = require("events");

function Account() {
this.balance = 0;
events.EventEmitter.call(this);

this.deposid = function (amount) {
this.balance += amount;
this.emit("balanceChanged");
};

this.withdraw = function (amount) {
this.balance -= amount;
this.emit("balanceChanged");
};
}

Account.prototype.__proto__ = events.EventEmitter.prototype;

function displayBalance() {
console.log("Account  balance: $%d", this.balance);
}

function checkOverdraw() {
if (this.balance < 0) {
console.log("Account overdraw!!!");
}
}

function checkGoal(acc, goal) {
if (acc.balance > goal) {
console.log("Goal archieved!!!");
}
}

const account = new  Account();
account.on("balanceChanged", displayBalance);
account.on("balanceChanged", checkOverdraw);
account.on("balanceChanged", function () {
checkGoal(this, 1000);
});

account.deposid(220);
account.deposid(320);
account.deposid(620);
account.withdraw(1200);

打印结果:

Account  balance: $220
Account  balance: $540
Account  balance: $1160
Goal archieved!!!
Account  balance: $-40
Account overdraw!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: