美文网首页
事件处理机制

事件处理机制

作者: Shiki_思清 | 来源:发表于2020-09-15 12:43 被阅读0次
  • Node.js事件触发对象有哪些方法?

  • 详细讲讲Node.js事件机制是怎样的?

  • Node.js事件机制和JavaScript事件机制有什么区别?

  • Node.js非阻塞和高效调度事件的底层原因是什么?

  • 你认为Node.js作为前端框架为什么备受推崇?


事件是驱动内部运转的重要机制?

  1. Node.js事件触发对象有哪些方法?

    • 在events模块中,为EventEmitter类本身定义了两个事件:
    • newListener: emitter.on('newListener',fn)
    • removeListener: emitter.on('removeListener', fn)
    • EventEmitter.listenerCount (emitter, event)
    • addListener和on方法作用一样, once 只执行一次
      • emitter.on(eventName, listener)
      • emitter.addListener(eventName, listener)
      • emitter.once (eventName listener)
    • setMaxListeners: emitter.setMaxListeners(n) 限制对于同一个事件做多可以绑几个事件
    • listeners: emitter.listeners(eventName) 获取指定事件的所有事件处理函数
    • removeListener: emitter.removeListener (eventName, listener) 解除某个事件处理函数
    • removeAllListeners: emitter.removeAllListeners ( [eventName]) 批量接触
    • image.png
const { EventEmitter } = require("events");

const emitter = new EventEmitter();
// console.log(emitter);
emitter.on("someEvent", function (eventName, func) {
console.log("some_event 事件触发", eventName, func); // some_event 事件触发 arg1 参数 arg2 参数
});
emitter.on("someEvent", function (arg1, arg2) {
console.log("listener2", arg1, arg2); // listener2 arg1 参数 arg2 参数
});
emitter.emit("someEvent", "arg1 参数", "arg2 参数");
const arr = emitter.listeners("someEvent");

console.log(arr.length); // 2

  1. 详细讲讲Node.js事件机制是怎样的?

    • 事件环中包含多个事件,按照顺序依次执行,通过回调函数执行下一个

    • 当有新事件(触发事件,初始化该事件的回调函数等)进入,会优先处理新事件,处理完之后转回前一回调事件

    • 称为非阻塞事件环机制

  2. Node.js事件机制和JavaScript事件机制有什么区别?

    • 前端事件源有很多,涉及键盘鼠标浏览器dom等,而Node的触发事件的角色就一种 EventEmitter

    • 两者都是通过事件驱动,事件是驱动内部运转 的重要机制

  3. Node.js非阻塞和高效调度事件的底层原因是什么?

    • 在事件环机制执行中,事件按照顺序一直有序执行,没有阻塞

援引:https://juejin.im/post/6871437065754509325

相关文章

网友评论

      本文标题:事件处理机制

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