栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何编写Observable以避免给定的嵌套和相关回调

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何编写Observable以避免给定的嵌套和相关回调

我是所引用的有关回调和Java Futures的博客文章的原始作者。这是使用flatMap,zip和merge异步进行服务组合的示例。

它获取一个User对象,然后同时获取Social和PersonalizedCatalog数据,然后针对PersonalizedCatalog中的每个视频同时获取一个Bookmark,Rating和metadata,将它们压缩在一起,并将所有响应合并为一个渐进流,作为服务器发送的事件输出。

return getUser(userId).flatMap(user -> {    Observable<Map<String, Object>> catalog = getPersonalizedCatalog(user) .flatMap(catalogList -> catalogList.videos().<Map<String, Object>> flatMap(         video -> {  Observable<Bookmark> bookmark = getBookmark(video);  Observable<Rating> rating = getRatings(video);  Observable<Videometadata> metadata = getVideometadata(video);  return Observable.zip(bookmark, rating, metadata, (b, r, m) -> combineVideoData(video, b, r, m));         }));    Observable<Map<String, Object>> social = getSocial(user).map(s -> {        return s.getDataAsMap();    });    return Observable.merge(catalog, social);}).flatMap(data -> {    String json = SimpleJson.mapToJson(data);    return response.writeStringAndFlush("data: " + json + "n");});

可以在https://github.com/Netflix/ReactiveLab/blob/952362b89a4d4115ae0eecf0e73f273ecb27ba98/reactive-
lab-
gateway/src/main/java/io/reactivex/lab/gateway/routes/
的功能正常的应用程序上下文中查看此示例RouteForDeviceHome.java#L33

由于我无法在此处提供所有信息,因此您也可以在演示文稿形式中找到解释(带有视频链接),网址为https://speakerdeck.com/benjchristensen/reactive-
streams-with-rx-at-javaone- 2014?slide =
32。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/452937.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号