rxjs平面图缺失

rxjs平面图缺失,rxjs,observable,reactive-extensions-js,Rxjs,Observable,Reactive Extensions Js,我尝试链接多个rx.js观测值并传递数据Flatmap应该是fitting操作符,但导入为 import { Observable } from 'rxjs/Observable'; 找不到: Error TS2339: Property 'flatmap' does not exist on type 'Observable<Coordinates>' 答案很简单: 在这个版本的rxjs中,该操作符被称为mergeMap 编辑: 此外,您可能必须使用import'rxjs/ad

我尝试链接多个rx.js观测值并传递数据
Flatmap
应该是fitting操作符,但导入为

import { Observable } from 'rxjs/Observable';
找不到:

Error TS2339: Property 'flatmap' does not exist on type 'Observable<Coordinates>'

答案很简单:

在这个版本的rxjs中,该操作符被称为
mergeMap

编辑:


此外,您可能必须使用
import'rxjs/add/operator/mergeMap'

在我的例子中,我需要为mergeMap导入增强:

import 'rxjs/add/operator/mergeMap';
由于flatMap是mergeMap的别名,导入上面的模块将使您能够使用flatMap。

它对我很有用

import { Observable } from 'rxjs/Rx';

正确的导入应如下所示:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/mergeMap';
导入模块
mergeMap
将使您能够在代码中使用
flatMap

当您将从'rxjs/Rx'导入代码时,
import{Observable},不需要额外的
mergeMap
导入,但在AoT编译过程中可能会出现错误

ERROR in ./node_modules/rxjs/_esm5/observable/BoundCallbackObservable.js
Module build failed: TypeError: Cannot read property 'type' of undefined

在RxJS 5.5+中,
flatMap
操作符已重命名为
mergeMap
。相反,您现在应该将
mergeMap
操作符与
pipe
结合使用

您仍然可以使用别名
flatMap
使用flatMap

RxJS v5.5.2是Angular 5的默认依赖版本

对于您导入的每个RxJS操作符,包括
mergeMap
,现在应该从“RxJS/operators”导入并使用管道操作符

在可观察的Http请求上使用mergeMap的示例 请注意,
flatMap
替换为
mergeMap
,并且使用
pipe
操作符以与点链接类似的方式组合操作符


有关出租运营商的更多信息,请参阅rxjs文档

快速更新-2019年5月

使用rxjs v6.5.1

作为
mergeMap
操作符导入,例如/

import { Observable, from, of } from "rxjs";
import { map, filter, mergeMap } from "rxjs/operators";
然后与新的
管道
功能一起使用,例如/

var requestStream = of("https://api.github.com/users");
var responseStream = requestStream.pipe(
  mergeMap(requestUrl => {
    console.log(requestUrl);
    ... // other logic
    return rp(options);  // returns promise
  })
);

flatMap是它的别名,但使用大写的mpease更新您的答案以包括
import'rxjs/add/operator/mergeMap'因为它完成了最后的魔法!!感谢@Chris Piockok,虽然此代码可能会回答问题,但提供有关如何和/或为什么解决问题的附加上下文将提高答案的长期价值。请阅读本文以提供高质量的答案。这就是你如何包含不必要的代码并使你的包比需要的大。至少在大多数情况下是这样。注意:这是平面地图,而不是平面地图。我认为这是Angular/typescript的最佳答案。你们认为呢?
import { Observable, from, of } from "rxjs";
import { map, filter, mergeMap } from "rxjs/operators";
var requestStream = of("https://api.github.com/users");
var responseStream = requestStream.pipe(
  mergeMap(requestUrl => {
    console.log(requestUrl);
    ... // other logic
    return rp(options);  // returns promise
  })
);