升级到RC 6和RxJS Beta 11后,flatMap丢失

时间:2016-09-11 23:28:51

标签: angular rxjs

升级到RC6和rxjs@5.0.0-beta.11后,我似乎缺少Observable对象的一些扩展。

flatMap运算符消失了,mergeMap也不在这里。我现在只看到一些运营商。知道我错过了什么吗?

enter image description here

2 个答案:

答案 0 :(得分:27)

我猜你现在需要单独导入运算符。如果你看看里面

node_modules/rxjs/add/operator/mergeMap

你应该看到mergeMap.d.ts

的内容
declare module '../../Observable' {
    interface Observable<T> {
        flatMap: MergeMapSignature<T>;
        mergeMap: MergeMapSignature<T>;
    }
}

因此mergeMap模块声明了flatMapmergeMap。所以你可以导入那个文件

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';