Angular 2 Http超时

Igo*_*vić 4 angular2-http angular

我在HTTP超时发布自定义错误消息时遇到问题.

这是一个简单的例子:

return this._http.get(url).timeout(5000, new Error("Error message"));
Run Code Online (Sandbox Code Playgroud)

我看到每个人都使用新的错误("错误消息"),但我收到错误:

错误函数需要类型Scheduler.我收到此错误:"错误"类型的参数不能分配给"调度程序"类型的参数."错误"类型中缺少属性"SchedulerAction"

cor*_*opy 9

在rxjs 4中,可以通过这种方式自定义错误消息.但是,在最新版本的rxjs 5中,timeout只接受两个参数:

  • 到期:数量| 日期
  • scheduler:IScheduler(这是管理Observable处理超时的方式)

如果您想自定义错误,可以尝试以下方法:

return this._http.get(url)
 .timeout(5000)
 .catch(err => {

   if (err.name !== "TimeoutError") {
      return Observable.throw("Timeout has occurred");
   }

   return Observable.throw(err);

});
Run Code Online (Sandbox Code Playgroud)

  • 为什么在错误名称不是"TimeoutError"时发生超时 (4认同)