Javascript RxJs使用一个subject来触发当前可观察对象中的结果
在下面的代码中,我必须使用setTimeout从这个.parts$def中获取一个值,因为它链接到侦听操作事件的可观察对象。我怎样才能避开这个问题,这样我就不需要使用超时来触发这个。parts$defJavascript 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
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$不会产生结果。