Dol*_*lan 7 observable rxjs flatmap angular
有人可以向我解释为什么.flatMap操作员可以接受返回的函数Observable,或者array?
在官方的文档说:
FlatMap运算符通过将您指定的函数应用于源Observable发出的每个项来转换Observable,其中该函数返回一个本身发出项的Observable.
为什么它也会返回一个数组?
例如,这些都是有效的:
obs$.flatMap((data) => {
return [];
});
obs$.flatMap((data) => {
return new Observable<string>();
});
Run Code Online (Sandbox Code Playgroud)
但这不起作用:
obs$.flatMap((data) => {
return 1;
});
Run Code Online (Sandbox Code Playgroud)
官方文档无关紧要,因为它们是指RxJS 4而非RxJS 5。
mergeMap投影函数返回不只是Observable但ObservableInput接口,它适用于可转换的可观测量杂值:
数组可以解释为可观察到的对象,它从左到右依次发出数组中的所有值,然后立即完成。
这意味着
obs$.flatMap((data) => arr)
Run Code Online (Sandbox Code Playgroud)
基本上是
obs$.flatMap((data) => Observable.from(arr))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2475 次 |
| 最近记录: |