首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >`Duplex.from()‘must’“迭代”参数必须是Iterable的一个实例。接收到Object`的一个实例

`Duplex.from()‘must’“迭代”参数必须是Iterable的一个实例。接收到Object`的一个实例
EN

Stack Overflow用户
提问于 2022-02-14 19:52:16
回答 1查看 157关注 0票数 0

我非常困惑。Duplex.from()方法可以接受一个对象作为src,并从对象属性readable & writable创建一个双工流:

readablewritable转换为流,然后将它们组合成双工,在其中双工将写入可写的并从可读的读取。

为什么我的榜样不起作用?

代码语言:javascript
复制
const { PassThrough, Duplex } = require("stream");


const loopback = new PassThrough();


const duplex = Duplex.from({
    writable: loopback,
    readable: loopback
});


duplex.on("data", (chunk) => {
    console.log("Data on duplex", chunk)
});


duplex.write("Hello World");

我的预期结果是创建了一个双工流,如果是的话,输出与输入相同。(与"echo“或”普通通流“相同)

错误消息:

代码语言:javascript
复制
[nodemon] starting `node index.js`
internal/streams/from.js:32
    throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);
    ^

TypeError [ERR_INVALID_ARG_TYPE]: The "iterable" argument must be an instance of Iterable. Received an instance of Object
    at new NodeError (internal/errors.js:322:7)
    at from (internal/streams/from.js:32:11)
    at Function.Readable.from (internal/streams/readable.js:1368:10)
    at Object.<anonymous> (/home/marc/projects/test-stream/index.js:7:23)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12)
    at internal/main/run_main_module.js:17:47 {
  code: 'ERR_INVALID_ARG_TYPE'
}

有人能向我解释为什么我不能从一个对象创建一个双工流吗?

我有点迷失了,因为文档说您可以传递一个对象作为参数,但是错误消息说“必须是Iterable的一个实例”。据我所知,对象是可迭代的。那么这里有什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-14 19:55:35

没关系,我发现了我的错误。

我使用的是一个过时的节点版本:

代码语言:javascript
复制
node -v
v14.19.0

我通过nodesource ( node.js )更新到v16:

代码语言:javascript
复制
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs

一切如愿以偿。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71117529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档