Convert Rxjs code to Angular 6 and latest rxjs
场景:
- Angular的新功能尝试将Angular 2代码迁移到Angular 6中。
-
知道我如何
可以用角度6重写以下代码
要在Angular 6中编写的代码:
1 2 3 4 5 6 7 8 9 10 11 12 | return this._http.post(this.apiBaseUrl +"/api/login", body, options) .timeoutWith(Constant.timeout, Observable.throw(new Error(Constant.timeoutMsg))) .map(response => { const result = response.json() as LoginResultModel; if (result.AccessToken != null) { this.setLoginToken(result); return result; } else { return response; } }); |
只需使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import { throwError } from 'rxjs'; import { map, timeoutWith } from 'rxjs/operators'; return this._httpClient.post<LoginResultModel>(this.apiBaseUrl +"/api/login", body, options) .pipe( timeoutWith(Constant.timeout, throwError(new Error(Constant.timeoutMsg))), map(result => { if (result.AccessToken != null) { this.setLoginToken(result); return result; } else { return response; } }) ); |
有关RxJS 6中的可点运算符的更多信息:
https://github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md
注意,我还使用了
https://angular.io/guide/http