Rxjs 当forkJoin不在Epics中的SwitchMap/MergeMap中时,它的行为是什么

Rxjs 当forkJoin不在Epics中的SwitchMap/MergeMap中时,它的行为是什么,rxjs,redux-observable,Rxjs,Redux Observable,我想了解当我直接通过管道连接到action$并尝试使用forkJoin操作符时会发生什么 const action1={type:“ACTION_1”}; const action2={type:“ACTION_2”}; 在开关映射中,forkJoin可以正常工作 导出常量testForkJoinSwitchMap:Epic=action$=> 动作$.pipe( 类型(action1), 开关映射(()=> 分叉连接( 从(获取)https://api.github.com/users)管

我想了解当我直接通过管道连接到action$并尝试使用forkJoin操作符时会发生什么

const action1={type:“ACTION_1”};
const action2={type:“ACTION_2”};
在开关映射中,forkJoin可以正常工作


导出常量testForkJoinSwitchMap:Epic=action$=>
动作$.pipe(
类型(action1),
开关映射(()=>
分叉连接(
从(获取)https://api.github.com/users)管道(
映射((res:any)=>{
返回res;
})
)
)
),
地图(数据:任意)=>{
//处理数据
返回操作2;
})
);
如果我把它从开关地图中拿出来,那么:


导出常量testForkJoin:Epic=action$=>
动作$.pipe(
类型(action1),
forkJoin(从(获取)https://api.github.com/users管道(
map((响应:任意)=>{
返回操作2;
})
)
);
我发现输入错误:

类型为“Observable”的参数不能分配给类型为“OperatorFunction”的参数。
我想知道它为什么不编译?类型不匹配的原因是什么,在这种情况下,没有forkJoin的epics无效

编辑:我知道forkJoin对于单个可观察对象没有意义,但我使用1来保持示例较小

可观察。pipe()
只在其中使用操作符

forkJoin是一个操作符,它返回一个可观察的,这就是为什么会出现这个错误<代码>类型为“Observable”的参数不可分配给类型为“OperatorFunction”的参数即返回可观察参数的forkJoin不可分配给类型为operator function的参数

另一方面,switchMap是一个操作符,它返回一个操作符函数,并对一个可观察对象进行操作,这就是为什么第一种方法有效
switchMap(()=>someObservable)
someObservable
在本例中是
forkJoin()


从你们的进口产品中也可以看出这一点。您可能已经从
rxjs
库导入了forkJoin,而从
rxjs/operators
库导入了switchMap。

这对我来说是有意义的,但根据,它说forkJoin是一个操作符,可能是forkJoin是一个操作符而不是一个可管道/可出租的操作符吗?我认为‘from’和‘of’或者从‘rxjs’而不是从‘rxjs/operators’导入的任何东西也是这样吗?哦,是的。我应该重新表述我的回答,forkJoin是一个返回可观察值的操作符。因此,是的,从“rxjs”导入的任何操作符都必须返回一个可观察的,尽管我不确定。switchMap返回一个运算符函数。