当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js stream.Readable.filter(fn[, options])用法及代码示例


readable.filter(fn[, options])

添加于:v17.4.0、v16.14.0
Stability: 1 - 实验性

参数

此方法允许过滤流。对于流中的每个块,将调用fn 函数,如果它返回一个真值,则该块将被传递给结果流。如果fn 函数返回一个promise - 该promise 将是await ed。

import { Readable } from 'node:stream';
import { Resolver } from 'node:dns/promises';

// With a synchronous predicate.
for await (const chunk of Readable.from([1, 2, 3, 4]).filter((x) => x > 2)) {
  console.log(chunk); // 3, 4
}
// With an asynchronous predicate, making at most 2 queries at a time.
const resolver = new Resolver();
const dnsResults = Readable.from([
  'nodejs.org',
  'openjsf.org',
  'www.linuxfoundation.org',
]).filter(async (domain) => {
  const { address } = await resolver.resolve4(domain, { ttl: true });
  return address.ttl > 60;
}, { concurrency: 2 });
for await (const result of dnsResults) {
  // Logs domains with more than 60 seconds on the resolved dns record.
  console.log(result);
}

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 stream.Readable.filter(fn[, options])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。