为什么 switchMap 在返回一个简单数组时不需要可观察对象

Why switchMap does not require an observable when returning an simple array

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

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

我希望第一个能够工作并且认为它是正确的语法。
我不希望第二个起作用,但它确实起作用,我想了解原因。
谢谢,

因为 switchMap 以及其他扁平化运算符(mergeMapexhaustMap、...)将 ObservableLike 作为 return 类型它的投影功能。

ObservableLike 可以是 ObservablePromiseArray。如果你提供一个数组,它会被转换成它的项目流——基本上和你使用 from.

一样