我目前正在尝试使Angular 2 Observable的timeout()方法正常工作,但在所有教程中都有similair代码,其中timeout()方法的第二个参数是一个简单的错误:
return this.http.get('http://...') .timeout(2000,new Error('Timeout exceeded'));
但是当我复制这段代码时,TypeScript会说第二个参数的类型无效,并且希望看到实现接口IScheduler的smth.
timeout
不会将错误作为参数.如果发生超时,它将抛出
TimeoutError
.
如果要抛出特定类型的错误,可以使用timeoutWith
operator执行以下操作:
import { Observable } from 'rxjs/Observable'; import 'rxjs/add/observable/throw'; import 'rxjs/add/operator/timeoutWith'; return this.http .get('http://...') .timeoutWith(2000,Observable.throw(new Error('Boom!')));