美文网首页
Node.js之事件监听和发送

Node.js之事件监听和发送

作者: 老马的春天 | 来源:发表于2017-06-16 18:20 被阅读33次

    演示事件的发送和监听

    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!!!
    

    相关文章

      网友评论

          本文标题:Node.js之事件监听和发送

          本文链接:https://www.haomeiwen.com/subject/nqpmqxtx.html