angular - forkJoin 上的 takeUntil 是否会调用 forkJoined observables 上的函数?

标签 angular rxjs

调用 forkJoin 时:

forkJoin(observableA, observableB)
  .pipe(takeUntil(onDestroy$))
.pipe(takeUntil(onDestroy$))当 Angular 中的组件被销毁时,被添加以释放 observables。这是否也在 observableA 和 obserableB 上调用?或者是否应该在传递给 forkJoin 的所有 observables 上单独调用它? ?

最佳答案

它将自动取消订阅源 observables。

一个 simple test确认。

import { of, interval, forkJoin } from 'rxjs'; 
import { map, takeUntil, delay, tap } from 'rxjs/operators';

const source1 = interval(200).pipe(tap(i => console.log(i)));
const source2 = interval(300).pipe(tap(i => console.log('a' + i)));

const stop = of('stop').pipe(delay(2000));

forkJoin(source1, source2).pipe(takeUntil(stop)).subscribe();

在 2 秒内记录值然后停止。

关于angular - forkJoin 上的 takeUntil 是否会调用 forkJoined observables 上的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59321809/

相关文章:

angular - Jasmine 中的 TestBed 是什么

arrays - 通过 json2typescript 反序列化 json 时出错

Angular - 将管道作为变量传递

javascript - 如何返回 Http 响应?

javascript - 在 RxJS 中以 block 的形式运行一组可观察对象

javascript - package.json 中的 typescript 声明应该放在 "dependencies"、 "devDependencies"还是两者?

angular - 在路由解析器中调用嵌套的 http 返回 Observable 而不是数据

javascript - RxJs 重复事件链

angular - RxJS 将日志缩减为数组,但将错误缩减为对象

node.js - Node 和 RxJ : How can I avoid a memory leak on a long process?