繁体   English   中英

Node.js addEventListener等事件无浏览器

[英]Node.js addEventListener and other events without browser

任务是在不使用浏览器的情况下在 Node.js 上运行此脚本。 问题是代码只能在浏览器的上下文中工作,并且只能以这种形式工作。

var d1 = {};

function test(data){
    console.log(data);
    d1 = data;
}
addEventListener("test", test, false);

var cv = document.createEvent("CustomEvent");

(function init(e) {
    e.initCustomEvent("test", false, false, ["test1","test2", {test: 'test3'}]);
    dispatchEvent(e)
}(cv));

console.log(d1);

如果更改 init 的 function(删除括号 (...)),则代码将无法正常工作。

function init(e) {
    e.initCustomEvent("test", false, false, ["test1","test2", {test: 'test3'}]);
    dispatchEvent(e)
}(cv);

在互联网上,我找到了script 错误代码不会随它一起给出,但它与不带括号的代码版本相同。 这个解决方案有什么问题? 所有代码都在这里启动

因为 NodeJS 没有 DOM 也没有document object,所以您需要以不同的方式制作自定义事件。 检查该节点事件的节点文档

 // get the reference of EventEmitter class of events module var events = require('events'); //create an object of EventEmitter class by using above reference var em = new events.EventEmitter(); //Subscribe for FirstEvent em.on('test', function (data) { console.log('First subscriber: ' + data); }); // Raising FirstEvent em.emit('test', 'This is my first Node.js event emitter example.');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM