什么是Http.get()。catch的返回类型?

时间:2017-03-23 12:16:50

标签: angular typescript exception-handling rxjs angular2-observables

我正在学习角度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.
}

1 个答案:

答案 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