Cle*_*ent 5 http observable rxjs angular
我正在编写一个小实用程序函数,它使用必要的身份验证标头包含对AngularJS http.get的调用:
get(endpoint: string): Observable {
var headers = new Headers();
this._appendAuthentificationHeaders( headers, this.user.credentials);
return this.http.get(endpoint, { headers: headers })
.map(res => res.json());
}
Run Code Online (Sandbox Code Playgroud)
这里的要点是,如果this.user为null,则该方法将崩溃.所以我有三个选择:
我想实现第三种方法,因为它允许我统一这个方法的行为:无论发生什么,它总是返回一个observable.
如果user是null,您可以简单地返回一个触发错误的原始可观察值:
if (this.user == null) {
return Observable.create((observer) => {
observer.error('User is null');
});
}
(...)
Run Code Online (Sandbox Code Playgroud)
或利用运算符throw:
if (this.user == null) {
return Observable.throw('User is null');
}
(...)
Run Code Online (Sandbox Code Playgroud)
这样subscribe就会调用该方法的第二个方法:
observable.subscribe(
(data) => {
(...)
},
(err) => {
// Will be called in this case
}
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
518 次 |
| 最近记录: |