share(source[, options])


新增于: v25.9.0
  • source <AsyncIterable> 共享的来源。
  • options <Object>
    • highWaterMark <number> 缓冲区大小。必须 >= 1;小于 1 的值将被限制为 1。默认值: 16
    • backpressure <string> 'strict''block''drop-oldest''drop-newest'默认值: 'strict'
  • 返回:Share

创建一个拉取模式的多消费者共享流。与 broadcast() 不同,源只有在消费者拉取时才会被读取。多个消费者共享一个缓冲区。

🌐 Create a pull-model multi-consumer shared stream. Unlike broadcast(), the source is only read when a consumer pulls. Multiple consumers share a single buffer.

import { from, share, text } from 'node:stream/iter';
const shared = share(from('hello'));
const c1 = shared.pull();
const c2 = shared.pull();
// Consume concurrently to avoid deadlock with small buffers.
const [r1, r2] = await Promise.all([text(c1), text(c2)]);
console.log(r1); // 'hello'
console.log(r2); // 'hello'const { from, share, text } = require('node:stream/iter');
async function run() {
 const shared = share(from('hello'));
 const c1 = shared.pull();
 const c2 = shared.pull();
 // Consume concurrently to avoid deadlock with small buffers.
 const [r1, r2] = await Promise.all([text(c1), text(c2)]);
 console.log(r1); // 'hello'
 console.log(r2); // 'hello'
}
run().catch(console.error);

AltStyle によって変換されたページ (->オリジナル) /