Rxjs 使用管道和地图获取可观测结果

Rxjs 使用管道和地图获取可观测结果,rxjs,Rxjs,我试图在按钮上设置一个可观察对象,并将其链接到一个返回可观察对象的服务 sydneyHttp$ = new Observable<string>(); this.sydneyHttp$ = fromEvent(this.sydneyServerButton, 'click') .pipe( map(() => this.streamService.getStream(1) ) ); sydneyHttp$=newobservable(

我试图在按钮上设置一个可观察对象,并将其链接到一个返回可观察对象的服务

sydneyHttp$ = new Observable<string>();

this.sydneyHttp$ = fromEvent(this.sydneyServerButton, 'click')
      .pipe(
        map(() => this.streamService.getStream(1) )
      );
sydneyHttp$=newobservable();
this.sydneyHttp$=fromEvent(this.sydneyServerButton,'单击')
.烟斗(
map(()=>this.streamService.getStream(1))
);
我得到这个错误,可观察的被包装在一个可观察的:

Type 'Observable<Observable<string>>' is not assignable to type 'Observable<string>'.
类型“Observable”不可分配给类型“Observable”。

我想在
flatMap
forkMap
中使用它,再请求一次单击。

更改为mergeMap将解决此问题

sydneyHttp$ = new Observable<string>();

this.sydneyHttp$ = fromEvent(this.sydneyServerButton, 'click')
      .pipe(
        mergeMap(() => this.streamService.getStream(1) )
      );
sydneyHttp$=newobservable();
this.sydneyHttp$=fromEvent(this.sydneyServerButton,'单击')
.烟斗(
mergeMap(()=>this.streamService.getStream(1))
);

或者可能是
switchMap
,我想在这种情况下可能更好,但可能很难知道。@听起来你知道
map
flatMap
是不同的操作吗。这同样适用于
map
switchMap
/
mergeMap
。如果调用
map
并为每个项目返回一个数组,则从一个项目数组转到一个数组。如果调用
flatMap
并从每个项目返回一个数组,则仍然有一个项目数组。类似地,如果调用
map
并返回一个可观察对象,则从项目的可观察对象转到可观察对象的可观察对象。map将按原样返回值,而不会展开/执行可观察-this.streamService.getStream(1)