flatMap

Posted huyang011

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flatMap相关的知识,希望对你有一定的参考价值。

扩展:由于可以在嵌套的 Observable 中添加异步代码, flatMap() 也常用于嵌套的异步操作,例如嵌套的网络请求。示例代码(Retrofit + RxJava):
networkClient.token() // 返回 Observable<String>,在订阅时请求 token,并在响应后发送 token
    .flatMap(new Func1<String, Observable<Messages>>() {
        @Override
        public Observable<Messages> call(String token) {
            // 返回 Observable<Messages>,在订阅时请求消息列表,并在响应后发送请求到的消息列表
            return networkClient.messages();
        }
    })
    .subscribe(new Action1<Messages>() {
        @Override
        public void call(Messages messages) {
            // 处理显示消息列表
            showMessages(messages);
        }
    });

以上是关于flatMap的主要内容,如果未能解决你的问题,请参考以下文章

Angular RxJS flatMap这个_this

Java Reactor 中嵌套 flatMaps 的好习惯是啥?

通过 if 条件从 `Array.flatMap()` 中不返回任何元素

Java8 Stream流

RxSwift:在使用 flatMap 和 reduce 时需要帮助

Typescript flatMap, flat, flatten 在任何类型上不存在 []