gpt4 book ai didi

angular - RxJS/Observable flatMap 可以返回 Observable 或数组

转载 作者:太空狗 更新时间:2023-10-29 17:19:45 25 4
gpt4 key购买 nike

有人可以向我解释为什么 .flatMap 运算符可以接受返回 Observablearray 的函数吗?

official docs说:

The FlatMap operator transforms an Observable by applying a function that you specify to each item emitted by the source Observable, where that function returns an Observable that itself emits items.

为什么它也可以返回一个数组

例如,这些都是有效的:

obs$.flatMap((data) => {
return [];
});

obs$.flatMap((data) => {
return new Observable<string>();
});

但这不起作用:

obs$.flatMap((data) => {
return 1;
});

最佳答案

官方文档不相关,因为它们指的是 RxJS 4 而不是 RxJS 5。

mergeMap 投影函数返回 not just Observable but ObservableInput interface , 适用于 miscellaneous values that can be converted to observables :

Arrays can be interpreted as observables that emit all values in array one by one, from left to right, and then complete immediately.

这意味着

obs$.flatMap((data) => arr)

基本上是一个较短的版本

obs$.flatMap((data) => Observable.from(arr))

关于angular - RxJS/Observable flatMap 可以返回 Observable 或数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45260394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com