Rxjs forkJoin在多个主题上不起作用

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

我想一次订阅多个主题,但没有得到期望的数据。由于某些原因,主题和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个回答
1
投票

Forkjoin将在可观察值完成时为您提供结果。对于您的代码,请尝试CombineLatest。

签出:combineLatest

这样做吧:

const a = combineLatest( this.scene$, this.camera$, this.renderer$ )
    .subscribe( ([scene, camera, renderer]) => {
        console.log('scene', scene, 'camera', camera, 'renderer', renderer 
    )}
);
© www.soinside.com 2019 - 2024. All rights reserved.