node事件

const fs = require('fs');

fs.readFile('1_fs.js', function(err, data) {
    if (err) return;
    diyEvent.emit('readSuccess', data);
});


let diyEvent = {
    event: {

    },
    on: function(eventName, eventFn) {
        if (this.event[eventName]) {
            this.event[eventName].push(eventFn);
        } else {
            this.event[eventName] = [];
            this.event[eventName].push(eventFn);
        }
    },
    emit: function(eventName, eventMsg) {
        if (this.event[eventName]) {
            this.event[eventName].forEach(eachFn => {
                eachFn(eventMsg);
            });
        }
    }
}
diyEvent.on('readSuccess', function() {
    console.log('读取完了');
})

diyEvent.on('readSuccess', function() {
    console.log('开始做别的事情');
})
Node.js 是一个基于事件驱动的 JavaScript 运行环境。它的事件驱动机制基于观察者模式和回调函数。 事件驱动的原理是,Node.js 在执行过程中会不断地监听各种事件,当某个事件发生时,Node.js 会触发相应的回调函数来处理事件。这种机制使得 Node.js 能够高效地处理大量并发请求。 具体来说,Node.js 的事件驱动原理包括以下几个关键组件: 1. 事件循环(Event Loop):Node.js 在单线程中运行,它的事件循环负责监听和分发事件事件循环会不断地从事件队列中取出事件,并将事件分发给对应的回调函数进行处理。 2. 事件队列(Event Queue):事件队列是用来存储待处理的事件的队列。当某个事件触发时,相关的回调函数会被添加到事件队列中等待执行。 3. 观察者(Observer):观察者是用来监听特定类型事件的对象。在 Node.js 中,观察者可以是内部的模块、外部的库或用户自定义的对象。当某个观察者监听到特定类型的事件时,它会将对应的回调函数添加到事件队列中。 4. 回调函数(Callback):回调函数是在特定事件发生时被执行的函数。它是异步编程的核心机制,在 Node.js 中广泛使用。当某个事件触发时,事件循环会从事件队列中取出对应的回调函数,并执行它。 总的来说,Node.js 的事件驱动机制基于事件循环、事件队列、观察者和回调函数的组合。通过这种机制,Node.js 能够高效地处理并发请求,提供高性能的网络服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值