我想一次订阅多个主题,但没有得到期望的数据。由于某些原因,主题和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.
});
Forkjoin将在可观察值完成时为您提供结果。对于您的代码,请尝试CombineLatest。
这样做吧:
const a = combineLatest( this.scene$, this.camera$, this.renderer$ )
.subscribe( ([scene, camera, renderer]) => {
console.log('scene', scene, 'camera', camera, 'renderer', renderer
)}
);