Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';s从';事件';vs.从'导入{EventEmitter};事件';?_Javascript_Node.js_Es6 Modules_Eventemitter - Fatal编程技术网

Javascript 什么';s从';事件';vs.从'导入{EventEmitter};事件';?

Javascript 什么';s从';事件';vs.从'导入{EventEmitter};事件';?,javascript,node.js,es6-modules,eventemitter,Javascript,Node.js,Es6 Modules,Eventemitter,似乎两者都能起作用。下面列出的两个e1都是EventEmitters,可以这样使用 import { EventEmitter } from "events"; let e1 = new EventEmitter(); 我在谷歌上搜索,没有找到答案。我还研究了节点文档,发现差异从节点4.x开始(在0.12.x,它仍然是从Events.EventEmitter导入的) 有人能解释一下这里的区别吗?当您从模块导入时使用大括号{}时,您直接从名为命名导出的模块导入特定导出,而不是整个模块 模块可以

似乎两者都能起作用。下面列出的两个
e1
都是
EventEmitter
s,可以这样使用

import { EventEmitter } from "events";
let e1 = new EventEmitter();

我在谷歌上搜索,没有找到答案。我还研究了节点文档,发现差异从节点4.x开始(在0.12.x,它仍然是从Events.EventEmitter导入的


有人能解释一下这里的区别吗?

当您从模块导入时使用大括号
{}
时,您直接从名为命名导出的模块导入特定导出,而不是整个模块


模块可以有一个默认的导出,可以在不使用大括号的情况下导入<代码>从导入MyModule./MyModule
。此默认导出可以让您访问模块的其他导出,具体取决于模块如何处理其导出。

那么您是说“事件”模块的默认导出是events.EventEmitter吗?还有一点很奇怪,我猜节点中没有内置“事件”类?我希望节点文档在其文档中进行了解释。这对新手来说很混乱…顺便说一句,对于下面的代码,它看起来不像默认的导出是EventEmitter。否则下面的代码应该中断吗?(除非EventEmitter有一个名为EventEmitter的属性指向自身…)=============var events=require('events');var eventCenter=new events.EventEmitter();。在第49行,`事件发射器。EventEmitter=EventEmitter;`定义一个指向对象本身的属性,以便代码正常工作。是的,节点中没有事件类。所有事件都是使用EventEmitter生成的。似乎相关。“
从Events.EventEmitter导入”
?节点4和节点0.12不支持ES6模块。和来自事件的
。EventEmitter
无论如何都无效。你到底指的是什么?你能把你找到的网页链接起来吗?
import events from "events";
let e1 = new events();