【问题标题】:Why does subscriber hear old error on a Subject?为什么订阅者会听到有关主题的旧错误?
【发布时间】:2017-08-03 09:04:33
【问题描述】:

我有一个主题

const subj$$ = new Rx.Subject();

和迟到的订阅者

subj$$.next('value');

setTimeout(() => {
  subj$$.subscribe(console.log, console.error);
}, 500);

正如预期的那样,500 毫秒后什么都没有发生

但是……

如果我抛出错误

subj$$.error('error');

setTimeout(() => {
  subj$$.subscribe(console.log, console.error);
}, 500);

迟到的观察者处理这个错误!!!

为什么? 我认为对后期观察者有一致的行为是合乎逻辑的。 并且不要通知他们,但事实并非如此

【问题讨论】:

  • Subject 类不会重播任何值。这就是 ReplaySubjectBehaviorSubject 所做的。

标签: rxjs rxjs5


【解决方案1】:

据我了解,答案与此处相同 https://stackoverflow.com/a/45478765/2772394

所以错误也是完整的,但是有错误所以 通知所有迟到的观察者 Sequence 已经完成(不管错误)

【讨论】:

    猜你喜欢
    • 2018-11-18
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 1970-01-01
    • 2021-11-08
    • 2011-02-13
    • 2019-09-09
    相关资源
    最近更新 更多