Node.js之事件监听和发送

演示事件的发送和监听

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!!!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容