我使用的是一个名为ya-csv的库,它需要一个文件或流作为输入,但我有一个字符串。
如何在Node中将该字符串转换为流?
发布于 2020-01-08 09:02:35
从节点10.17开始,stream.Readable有一个from
方法,可以轻松地从任何可迭代对象(包括数组文字)创建流:
const { Readable } = require("stream")
const readable = Readable.from(["input string"])
readable.on("data", (chunk) => {
console.log(chunk) // will be called once with `"input string"`
})
请注意,至少在10.17和12.3之间,字符串本身是可迭代的,因此Readable.from("input string")
将起作用,但会为每个字符发出一个事件。Readable.from(["input string"])
将为数组中的每一项(在本例中为一项)发出一个事件。
还要注意,在以后的节点中(可能是12.3,因为文档中说函数当时已更改),不再需要将字符串包装在数组中。
https://nodejs.org/api/stream.html#stream_stream_readable_from_iterable_options
发布于 2012-10-11 02:27:40
只需创建一个新的stream
模块实例,并根据需要对其进行自定义:
var Stream = require('stream');
var stream = new Stream();
stream.pipe = function(dest) {
dest.write('your string');
return dest;
};
stream.pipe(process.stdout); // in this case the terminal, change to ya-csv
或
var Stream = require('stream');
var stream = new Stream();
stream.on('data', function(data) {
process.stdout.write(data); // change process.stdout to ya-csv
});
stream.emit('data', 'this is my string');
发布于 2015-08-31 07:44:48
有一个这样的模块:https://www.npmjs.com/package/string-to-stream
var str = require('string-to-stream')
str('hi there').pipe(process.stdout) // => 'hi there'
https://stackoverflow.com/questions/12755997
复制相似问题