take

在完成前投射 N 个值(N 由参数决定)。

说明

为什么使用 take

当只对开头的一组值感兴趣时,你想要的便是 take 操作符。也许你想看看当用户第一次进入页面时,用户首先点击的是什么,你想要订阅点击事件并只取首个值。举例来说,你想要观看赛跑,但其实你只对首先冲过终点的人感兴趣。此操作符很清晰明了,你想要取开头 n 个值。

  • 如果想基于某个逻辑或另一个 Observable 来取任意数量的值,你可以用 takeUntiltakeWhile
  • takeskip 是相反的,它接收起始的 N 个值,而 skip 会跳过起始的 N 个值。

用法

take<T>(count: number): MonoTypeOperatorFunction<T>

参数

参数说明
count最大投射次数。

返回

类型: MonoTypeOperatorFunction<T>

示例

import { interval } from 'rxjs';
import { take } from 'rxjs/operators';

const intervalCount = interval(1000);
const takeFive = intervalCount.pipe(take(5));
takeFive.subscribe(x => console.log(x));

// 输出:
// 0
// 1
// 2
// 3
// 4

源码

https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/take.ts

在 GitHub 上编辑此页面 article.updatedAt Wed, Aug 11, 2021