小编asd*_*159的帖子

如何在 Javascript 中将两个 ReadableStreams 通过管道传输到一个 WritableStream 中?

我有两个 ReadableStream,我想将它们通过管道传输到一个 WritableStream,其中通过 ReadableStream 的任何数据都会立即直接进入 WritableStream。

我可以做相反的事情,通过使用ReadableStream.prototype.tee()将一个 ReadableStream 一分为二,但我不知道如何将两个合并为一个。

const textarea = document.querySelector("textarea");


// This is a ReadableStream which says "Mom! " every 1 second.
const momReadableStream = new ReadableStream({ start: controller => {
  const sayMom = () => controller.enqueue("Mom! ");
  setInterval(sayMom, 1000);
}});

// This is a ReadableStream which says "Lois! " every 0.7 seconds.
const loisReadableStream = new ReadableStream({ start: controller => {
  const sayLois = () => controller.enqueue("Lois! ");
  setInterval(sayLois, 700);
}});

// …
Run Code Online (Sandbox Code Playgroud)

javascript pipeline tee whatwg-streams-api

2
推荐指数
1
解决办法
560
查看次数

如何在 rust 迭代器中每 n 个项目散布一个值?

我有一个字符迭代器,我想每 N 个字符添加一个换行符:

let iter = "abcdefghijklmnopqrstuvwxyz".chars();
let iter_with_newlines = todo!();
let string: String = iter_with_newlines.collect();
assert_eq("abcdefghij\nklmnopqrst\nuvwxyz", string);
Run Code Online (Sandbox Code Playgroud)

所以基本上,我想在迭代器中每 n 个字符散布一个换行符。我怎样才能做到这一点?

我的一些想法

如果我能做这样的事情那就太好了,哪里chunks有一种方法可以制作Iterator<T>Iterator<Iterator<T>iter.chunks(10).intersperse('\n').flatten()

如果我能做这样的事情那就太酷了:iter.chunks.intersperseEvery(10, '\n'),其中intersperseEvery是一种仅将值散布在每 n 个项目中的方法。

iterator rust rust-itertools

1
推荐指数
1
解决办法
1124
查看次数