Single

简介: Single 介绍 RxJava(以及它派生出来的RxGroovy和RxScala)中有一个名为Single的Observable变种。 Single类似于Observable,不同的是,它总是只发射一个值,或者一个错误通知,而不是发射一系列的值。 因此,不同于Observable需要三个方法onNext, onError, onCompleted,订阅Sing

Single

介绍

RxJava(以及它派生出来的RxGroovy和RxScala)中有一个名为Single的Observable变种。

Single类似于Observable,不同的是,它总是只发射一个值,或者一个错误通知,而不是发射一系列的值。

因此,不同于Observable需要三个方法onNext, onError, onCompleted,订阅Single只需要两个方法:

  • onSuccess - Single发射单个的值到这个方法
  • onError - 如果无法发射需要的值,Single发射一个Throwable对象到这个方法

Single只会调用这两个方法中的一个,而且只会调用一次,调用了任何一个方法之后,订阅关系终止。

Single的操作符

Single也可以组合使用多种操作,一些操作符让你可以混合使用Observable和Single:

操作符 返回值 说明
compose Single 创建一个自定义的操作符
concat and concatWith Observable 连接多个Single和Observable发射的数据
create Single 调用观察者的create方法创建一个Single
error Single 返回一个立即给订阅者发射错误通知的Single
flatMap Single 返回一个Single,它发射对原Single的数据执行flatMap操作后的结果
flatMapObservable Observable 返回一个Observable,它发射对原Single的数据执行flatMap操作后的结果
from Single 将Future转换成Single
just Single 返回一个发射一个指定值的Single
map Single 返回一个Single,它发射对原Single的数据执行map操作后的结果
merge Single 将一个Single(它发射的数据是另一个Single,假设为B)转换成另一个Single(它发射来自另一个Single(B)的数据)
merge and mergeWith Observable 合并发射来自多个Single的数据
observeOn Single 指示Single在指定的调度程序上调用订阅者的方法
onErrorReturn Single 将一个发射错误通知的Single转换成一个发射指定数据项的Single
subscribeOn Single 指示Single在指定的调度程序上执行操作
timeout Single 它给原有的Single添加超时控制,如果超时了就发射一个错误通知
toSingle Single 将一个发射单个值的Observable转换为一个Single
zip and zipWith Single 将多个Single转换为一个,后者发射的数据是对前者应用一个函数后的结果

操作符图示

详细的图解可以参考英文文档:<a rel="nofollow" href="http://reactivex.io/documentation/single.html" "="" style="box-sizing: border-box; color: rgb(45, 133, 202); text-decoration: none; background-color: transparent;">Single

目录
相关文章
|
算法 数据挖掘 调度
隐语实训营-第3讲:详解隐私计算框架的架构和技术要点
主要介绍隐语的隐私计算架构,并对每个模块进行拆解、分析,以期望不同使用者找到适合自己的模块,快速入手。
318 4
|
存储 JSON 监控
grafana/promtail 作用
Grafana/ Promtail 是一个日志的收集、存储和可视化工具。它主要用于监控和分析分布式系统的日志数据。Grafana是一个开源的数据可视化工具,而Promtail是Grafana的一个组件,用于收集和发送日志数据。Grafana/ Promtail具有以下作用: 1. 日志收集:Promtail可以从不同的源收集日志数据,如系统日志、应用日志等,并将其发送到中央存储库,如Elasticsearch、Loki等。 2. 自动发现和标记:Promtail可以自动发现并标记正在运行的容器和主机,以便在收集日志时进行标识和过滤。 3. 丰富的日志格式支持:Promtail支持多种常见
714 0
|
SQL 开发框架 运维
Helm开发/调试的最佳实践
本文的目标不限于对Helm官方文档的翻译或解释,更在于帮助开发者能够快速编写出一个标准且合理的helm chart。 ## Helm简介 一句话描述:Helm是Kubernetes的包管理工具 ### Helm vs Operator Helm 和 Operator都可以实现在k8s上安装应用。但二者有着不同的适用场景。 Helm适用于: - 开发者群体 - 门槛低:熟悉k8s即可 -
2292 0
|
存储 Prometheus Cloud Native
Grafana 系列文章(一):基于 Grafana 的全栈可观察性 Demo
Grafana 系列文章(一):基于 Grafana 的全栈可观察性 Demo
|
10月前
|
机器学习/深度学习 传感器 人工智能
《解锁AI算法密匙,机器人复杂任务表现大跃升!》
在科技飞速发展的今天,机器人已从简单的机械臂演变为复杂任务的执行者,广泛应用于工业、医疗和家庭服务等领域。人工智能算法为机器人注入智慧,使其能够感知、理解并应对复杂环境。机器学习算法让机器人学会“举一反三”,深度学习提升其感知与决策能力,多模态融合赋予全方位感知,优化算法提高执行效率。这些技术的进步使机器人在未来将发挥更大作用,带来更多便利。
233 9
|
11月前
|
存储 算法 C++
【C++数据结构——查找】二分查找(头歌实践教学平台习题)【合集】
二分查找的基本思想是:每次比较中间元素与目标元素的大小,如果中间元素等于目标元素,则查找成功;顺序表是线性表的一种存储方式,它用一组地址连续的存储单元依次存储线性表中的数据元素,使得逻辑上相邻的元素在物理存储位置上也相邻。第1次比较:查找范围R[0...10],比较元素R[5]:25。第1次比较:查找范围R[0...10],比较元素R[5]:25。第2次比较:查找范围R[0..4],比较元素R[2]:10。第3次比较:查找范围R[3...4],比较元素R[3]:15。,其中是顺序表中元素的个数。
516 68
【C++数据结构——查找】二分查找(头歌实践教学平台习题)【合集】
|
机器学习/深度学习 分布式计算 算法
机器学习PAI常见问题之下载了很多版本依赖包导致超时如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。
|
存储 Kubernetes 算法
【K8S系列】深入解析etcd
【K8S系列】深入解析etcd
701 0
|
机器学习/深度学习 存储 算法
NumPy 与 SciPy:Python 科学计算库的比较
【8月更文挑战第30天】
733 5
|
SQL 数据可视化 大数据
JimuReport 积木报表 v1.7.52 版本发布,免费的低代码报表
一款免费的数据可视化报表工具,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等!
398 0

热门文章

最新文章