我正在学习角度2,参加Deborah Kurata的Pluralsight课程(Angular 2:入门)。到目前为止它很棒,但是,对于我的生活,我似乎无法发现我.catch
的返回类型应该是什么。在她的课程中,以及到目前为止我发现的每个例子中,返回类型都留空了。
这就是我所拥有的:
getProducts(): Observable<IProduct[]> {
return this._http.get("someurl")
.map {.....}
.catch(this.handleError);
}
handleError (response: Response) **/*what goes here?*/** {
// the code in the course says Observable.throw, but chrome is
// complaining that there is no such function. I have tracked
// down "static throw: typeof ErrorObservable.create;" in
// Observable.ts but I'm not sure what's going on here.
}
答案 0 :(得分:0)
最常见的返回类型是Observable
。
准确地说,catch()
运算符的选择器函数定义为:
(err: any, caught: Observable): ObservableInput
使用支持多种返回类型的subscribeToResult
订阅返回的Observable(这就是为什么有ObservableInput
而不仅仅是Observable
)。无论如何,更容易看一下源代码中的例子,这些例子在在线文档中还没有,你应该能够理解它是如何工作的:https://github.com/ReactiveX/rxjs/blob/master/src/operator/catch.ts#L8
或查看subscribeToResult
支持的内容:https://github.com/ReactiveX/rxjs/blob/master/src/util/subscribeToResult.ts#L17