Node.js NodeJS中需要构造行为
我正在学习node js,我正在学习sterams模块 我有以下疑问-这两种说法的区别是什么Node.js NodeJS中需要构造行为,node.js,nodejs-stream,Node.js,Nodejs Stream,我正在学习node js,我正在学习sterams模块 我有以下疑问-这两种说法的区别是什么 const {Readable} = require("stream") and const Readable = require("stream") 下面是代码片段的工作原理。意味着数据是由读取流发出的,并且流的结尾也被提升 但是当const{Readable}转换为const Readable时,它停止工作 有人能解释为什么会有这种行为吗 cons
const {Readable} = require("stream")
and
const Readable = require("stream")
下面是代码片段的工作原理。意味着数据是由读取流发出的,并且流的结尾也被提升
但是当const{Readable}
转换为const Readable
时,它停止工作
有人能解释为什么会有这种行为吗
const {Readable} = require("stream"); // changing const Readable = require("stream") doesn't work
const createReadStream = () => {
const data = ["one","two","three"];
return new Readable({
read(){
if (data.length === 0) {
console.log('data ended');
this.push(null);
} else{
console.log('reading data');
this.push(data.shift());
}
}
});
}
这两个:
const {Readable} = require("stream");
const Readable = require("stream");
都不一样,第二个显然不起作用。第二个将整个模块句柄分配给Readable
,而第一个将模块中的.Readable
属性分配给变量Readable
。也许你想比较的是这两个:
const {Readable} = require("stream");
const Readable = require("stream").Readable;
这两者几乎相当。const{Readable}
语法称为destructuring,是第二行语法的快捷方式
注意,当您同时获取多个属性时,解构语法确实显示了它的优势:
const {Readable, Writable, Transform, pipeline} = require("stream");
这将在一行代码中声明和初始化多个变量