Rxjs 为什么switchMap在返回简单数组时不需要可观测值

Rxjs 为什么switchMap在返回简单数组时不需要可观测值,rxjs,observable,switchmap,Rxjs,Observable,Switchmap,我最初在搜索如何在ngrx效果中返回几个动作,发现需要返回一系列动作。 然后我注意到,在switchMap中返回一个简单数组与返回从该数组创建的可观察数组一样有效。 例如: timer(1000).pipe(switchMap(val => from([val, val + 1)])).subscribe(val => console.log(val)); timer(1000).pipe(switchMap(val => [val, val + 1])).subscribe

我最初在搜索如何在ngrx效果中返回几个动作,发现需要返回一系列动作。
然后我注意到,在switchMap中返回一个简单数组与返回从该数组创建的可观察数组一样有效。
例如:

timer(1000).pipe(switchMap(val => from([val, val + 1)])).subscribe(val => console.log(val));

timer(1000).pipe(switchMap(val => [val, val + 1])).subscribe(val => console.log(val));
我希望第一个能起作用,并且认为它是正确的语法。
我不期望第二个能起作用,但它确实起作用,我想知道为什么。

谢谢,

因为在其他展平操作符(
mergeMap
defaustmap
,…)中,
observelike
作为其投影函数的返回类型

可观察类
可以是
可观察的
承诺
数组
。如果您提供一个数组,它将被转换为一个项目流-基本上与您使用的
from
相同