RxJS 5.5允许抓取lettable运算符并像这样管道:
import { ajax } from 'rxjs/observable/dom/ajax'
import { catchError, map, retry } from 'rxjs/operators'
ajax.getJSON('https://example.com/api/test')
.pipe(
retry(3, 1000),
map(fetchUserFulfilled),
catchError(console.error)
)
Run Code Online (Sandbox Code Playgroud)
我如何do在这些命令之间使用运算符?
如何使用lettable运算符和管道执行以下操作?
this.httpClient
.get(url)
.map((res: any) => {
const events = res.eventList;
return events.map(e => new EventLogModel(e));
})
.catch(this.handleError);
Run Code Online (Sandbox Code Playgroud)
我试过这个,但是我无法开始catchError工作catchError does not exist on type Observable<any>:
this.httpClient
.get(url)
.pipe(
map((res: any) => {
const events = res.eventList;
return events.map(e => new EventLogModel(e));
})
)
.catchError(this.handleError);
Run Code Online (Sandbox Code Playgroud)
另外,我认为catch并且catchError是一样的,对吗?我这样导入它:
import { map, catchError } from 'rxjs/operators';
但我不确定这是否是正确使用的操作符.
我正在升级到Angular 5和RxJS 5.5.2并尝试导入Observable.of运算符.
在可租赁运营商之前,我们这样做:
import 'rxjs/add/observable/of';
// Usage
Observable.of(...)
Run Code Online (Sandbox Code Playgroud)
但现在add不鼓励从包含的路径导入.
那么现在导入和使用lettable静态运算符的正确方法是什么?
reactive-programming rxjs typescript angular rxjs-lettable-operators