如何订阅一个可观察的对象?

问题描述 投票:0回答:1

是否有一个rxjs运算符/函数可以执行此操作?我的函数access()需要预订一次,每次调用该函数。

在下面的代码段中,$valueChanges会针对所做的每个更改发送数据。调用access()而没有const $ = ...$.unsubscribe()时,可观察到的$valueChanges会发出不必要的值流。

access() {
  const $ = $valueChanges.pipe(
    map((res) => 
      ...
    ),
  ).subscribe((res) => {

    ...

    $.unsubscribe();
  });
}
javascript angular reactjs typescript rxjs
1个回答
2
投票

您可以考虑使用take()运算符,并且在完成之前仅发出第一个值。

根据documentationtake运算符

Emit provided number of values before completing.

这是使用方法:

access() {
  valueChanges
    .pipe(
      map((res) => 
        ...
      ),
      take(1),
    ).subscribe((res) => {

      ...

    });
}
© www.soinside.com 2019 - 2024. All rights reserved.