Observable:在http get with error之后没有调用onCompletion

时间:2017-05-13 13:05:45

标签: javascript http rxjs observable

我无法理解为什么在发生错误时没有调用onCompletion(例如http 401/404)。不应该是预期的行为?

this.http.get('http://localhost/xxx')
  .map((res) => res.json())
  .subscribe(
    (res) => {
      console.log('onSuccess');
      console.log(res);
    },
    (err) => {
      console.log('onError');
      console.log(err);
    },
    () => {
      console.log('onCompletion');
    });

2 个答案:

答案 0 :(得分:0)

  

在Observable Execution中,可以传递零到无限的下一个通知。如果传递了错误或完成通知,则之后不能传递任何其他内容。

http://reactivex.io/rxjs/manual/overview.html#executing-observables

答案 1 :(得分:0)

有三种类型的事件:

  • 错误
  • 完整

它们根据此(RegExp)方案发生:n*(e|c)

正如朱莉娅指出的那样,文件也说明了这一点。