我知道这是一种已知的行为,如此处所示
基本问题在上面的链接中描述,但这里是相关代码(取自链接)
// This is going to behave strangely
const source$ = Observable.interval(1000).share();
const mapped$ = source$.map(x => {
if (x === 1) {
throw new Error('oops');
}
return x;
});
source$.subscribe(x => console.log('A', x));
mapped$.subscribe(x => console.log('B', x));
source$.subscribe(x => console.log('C', x));
// "A" 0
// "B" 0
// "C" 0
// "A" 1
// Uncaught Error: "oops"
订阅中的错误将终止整个源流。
Observable的解决方案是使用.observeOn(Rx.Scheduler.asap);
我对整个反应式编程都很陌生,我很难将此解决方案应用到我的Subject
,因为主题不支持observeOn
。
但我需要一个Subject
因为我需要将新值推向蒸汽。
如何解决此问题或将 observeOn
与Subject
一起使用?
observeOn
会返回Observable
。但我很难将observeOn
与Subject
结合起来。
如何使用observeOn并仍然可以将值推送到我的主题?
这是当前代码(简化)
export class MyClass{
private messages: Subject<Message> = new Subject<Message>();
dispatchMessage(message: Message) {
this.messages.next(message);
}
想法?
P.S。
任何使用角度的人(像我一样),observeOn可能会产生一些不良副作用。 https://github.com/angular/angular/issues/14316
正如此问题的任何人的其他信息。
答案 0 :(得分:0)
在这种情况下,您只需要单独引用go_loop "/tmp/text.txt" 'echo $i'
以及在追加class Gun(object):
def shoot(self):
# for example: 'shoot with silver_bullet'
print('shoot with %s' self.bullet)
运算符后对链的引用:
Subject