升级到RC6和rxjs@5.0.0-beta.11后,我似乎缺少Observable对象的一些扩展。
flatMap运算符消失了,mergeMap也不在这里。我现在只看到一些运营商。知道我错过了什么吗?
答案 0 :(得分:27)
我猜你现在需要单独导入运算符。如果你看看里面
node_modules/rxjs/add/operator/mergeMap
你应该看到mergeMap.d.ts
。
declare module '../../Observable' {
interface Observable<T> {
flatMap: MergeMapSignature<T>;
mergeMap: MergeMapSignature<T>;
}
}
因此mergeMap
模块声明了flatMap
和mergeMap
。所以你可以导入那个文件
import 'rxjs/add/operator/mergeMap`;
如果你担心风格(即必须在你需要的所有文件中导入它),你可以从Angular tutorial查看plunker示例,在那里他们将应用程序所需的所有操作符导入一个文件,只需将该文件导入app.component文件即可。您只需要在一个地方导入它。根据我的经验,在不参与AppComponent的单元测试时,我不得不将该文件导入每个测试文件中。
答案 1 :(得分:1)
升级到Angular 4之后,我意识到现在导入flatMap的正确方法是:
import {Observable} from 'rxjs/Rx'
import 'rxjs/add/operator/mergeMap';