Javascript RxJs使用一个subject来触发当前可观察对象中的结果

Javascript RxJs使用一个subject来触发当前可观察对象中的结果,javascript,angular,typescript,rxjs,Javascript,Angular,Typescript,Rxjs,在下面的代码中,我必须使用setTimeout从这个.parts$def中获取一个值,因为它链接到侦听操作事件的可观察对象。我怎样才能避开这个问题,这样我就不需要使用超时来触发这个。parts$def getParts$ = (def: Def) => { setTimeout(() => this.action.next('test'), 1); return this.parts$(def); }; 编辑:操作定义为: private a

在下面的代码中,我必须使用setTimeout从这个.parts$def中获取一个值,因为它链接到侦听操作事件的可观察对象。我怎样才能避开这个问题,这样我就不需要使用超时来触发这个。parts$def

getParts$ = (def: Def) => {
        setTimeout(() => this.action.next('test'), 1);
        return this.parts$(def);
    };
编辑:操作定义为:

private action = new Subject<string>();

我猜你要做的是在action fire之前订阅Part$。你可以试试下面的模式

getParts$ = (def: Def) => {
      return new Observable(obs=>{
        const sub=this.parts$(def).subscribe(obs);
        this.action.next('test'), 1);
        return ()=>sub.unsubscribe()
      }
    };

你能说一下这个动作是如何定义的吗?你所说的链接到监听动作事件的可观察对象是什么意思?如果你想对某个ui操作做出反应,比如点击并从某个主题获取值,你可能会想保留该主题上次发射的任何内容的本地值作为参考,并且只是。下一步,当所述操作发生时,这没有意义。请提供一个功能性和简化的场景示例,以便我们可以进一步帮助您。我无法说明此.parts$如何依赖于此.action,因为依赖项通过多个观察项链接,这样做将占用大量代码。重要的是存在一个依赖项,除非触发this.action.next,否则.parts$不会产生结果。