【问题标题】:The Rxjs forkJoin is not working on Multiple SubjectsRxjs forkJoin 不适用于多个主题
【发布时间】:2019-11-17 15:04:44
【问题描述】:

我想一次订阅多个主题,但我没有得到预期的数据。出于某种原因,主题和forkJoin 没有按我的预期工作。

有人可以帮我了解如何订阅多个主题吗?

到目前为止我的代码。

public scene$: ReplaySubject<THREE.Scene>;
public camera$: ReplaySubject<THREE.PerspectiveCamera>;
public renderer$: ReplaySubject<THREE.WebGLRenderer>;


// then i push some data
this.scene$.next({data: {} });
this.camera$.next({data: {} });
this.renderer$.next({data: {} });


// consuming the data
const a = forkJoin({
   scene: this.scene$,
   camera:  this.camera$,
   renderer: this.renderer$
}).subscribe( res => {
   console.log('=== out ===', {res});  // I dont get any response.
});


【问题讨论】:

    标签: typescript rxjs


    【解决方案1】:

    当 observables 完成时,Forkjoin 会给你结果。对于您的代码,请尝试 combineLatest。

    看看这个:combineLatest

    这样做:

    const a = combineLatest( this.scene$, this.camera$, this.renderer$ )
        .subscribe( ([scene, camera, renderer]) => {
            console.log('scene', scene, 'camera', camera, 'renderer', renderer 
        )}
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      • 2018-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多