Rx部分笔记(源自Rx官网)

2024-02-03 18:48
文章标签 笔记 部分 源自 rx 官网

本文主要是介绍Rx部分笔记(源自Rx官网),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Rx被用于生成异步数据的流程和序列

Observable像推送,订阅者被动接收消息
Iterable像拉取,订阅者主动拉取消息

将异步调用本身定义为 Observable。
对 onNext 的调用通常称为项目的“emissions”,而对 onComplete 和 onError 的调用称为“notifications”。
unsubscription并不能保证立即取消订阅,即使没有subscriber,observable仍有可能在一段时间内生成并尝试发射items

Observable类型:

        ColdObservable:直到有Observer订阅它才会开始发射

        HotObservable:创建后立即开始发射,不管有没有被订阅

        ConnectableObservable:其connect方法被调用后才会开始发射,与是否被订阅无关

链式操作
##Observable Contract##
    其实dispose就是退订
    对于同一个Observable的多个Observer,后来订阅的Observer可能收到以前所有的item,可能只收到此后的item,也可能收到跟前面的Observer完全不一样的item序列,这都由Observable决定
    背压:如果一个Observable支持背压并且订阅它的Observer使用了背压,Observable不会在订阅后立即开始发出item,而是先发出onSubscribe通知。
        Observer收到onSubscribe通知后可以发出request通知给Observable,请求一定数量的item。若该Observable不支持背压会直接发出onError通知去响应请求
        Observable自己定义策略去处理过量的item,丢弃、保留等等


操作符分类
##创建Observable##
**以下在rxjava3中均为静态方法,除了repeat**
    Create:传入你自定义的ObservableSource,每有一个Observer订阅都会走一遍subscribe(一般是相同的逻辑),所以一般每个Observer会收到相同的item序列。每个Observer的emitter不一样
        惰性计算,订阅之后才会调用代理函数,而且是最新item;   just, from 方法发出的都是创建Observable时候的item        
    defer:每有一个observer,都会用你指定的工厂函数为其生成一个新的Observable并让该observer订阅它。    
    Empty/Never/Throw:不发送任何item,分别是 正常终止(onCompleted)/永不终止也不发出/异常终止(onError),一般作为测试用。    
    just:只发送作为参数的一个item(object),可以发送null。    
    from:传递数组、Iterable、Future、Action、Callable、Runnable等作为参数,转换为Observable,订阅后依次拉取并传递item。    
    interval:通过给定的时间间隔创建一个Observable,每经过给定的时间间隔发送从0开始的递增的整数;可以用来替代计时器。未指定首次延迟是订阅前开始计算延迟;指定首次延迟是订阅后计算延迟并发出
    range:发出给定范围内的连续整数。若数量参数传入0则不发出item,若传入负数则会抛出异常
    start:将参数函数的返回值作为item发出。其实就是from里的那些方法
    timer:根据给定延迟发出单个item,订阅后开始计算延迟
    

这篇关于Rx部分笔记(源自Rx官网)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/675056

相关文章

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

《offer来了》第二章学习笔记

1.集合 Java四种集合:List、Queue、Set和Map 1.1.List:可重复 有序的Collection ArrayList: 基于数组实现,增删慢,查询快,线程不安全 Vector: 基于数组实现,增删慢,查询快,线程安全 LinkedList: 基于双向链实现,增删快,查询慢,线程不安全 1.2.Queue:队列 ArrayBlockingQueue:

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现

操作系统实训复习笔记(1)

目录 Linux vi/vim编辑器(简单) (1)vi/vim基本用法。 (2)vi/vim基础操作。 进程基础操作(简单) (1)fork()函数。 写文件系统函数(中等) ​编辑 (1)C语言读取文件。 (2)C语言写入文件。 1、write()函数。  读文件系统函数(简单) (1)read()函数。 作者本人的操作系统实训复习笔记 Linux

LVGL快速入门笔记

目录 一、基础知识 1. 基础对象(lv_obj) 2. 基础对象的大小(size) 3. 基础对象的位置(position) 3.1 直接设置方式 3.2 参照父对象对齐 3.3 获取位置 4. 基础对象的盒子模型(border-box) 5. 基础对象的样式(styles) 5.1 样式的状态和部分 5.1.1 对象可以处于以下状态States的组合: 5.1.2 对象

DDS信号的发生器(验证篇)——FPGA学习笔记8

前言:第一部分详细讲解DDS核心框图,还请读者深入阅读第一部分,以便理解DDS核心思想 三刷小梅哥视频总结! 小梅哥https://www.corecourse.com/lander 一、DDS简介         DDS(Direct Digital Synthesizer)即数字合成器,是一种新型的频率合成技术,具有低成本、低功耗、高分辨率、频率转换时间短、相位连续性好等优点,对数字信

数据库原理与安全复习笔记(未完待续)

1 概念 产生与发展:人工管理阶段 → \to → 文件系统阶段 → \to → 数据库系统阶段。 数据库系统特点:数据的管理者(DBMS);数据结构化;数据共享性高,冗余度低,易于扩充;数据独立性高。DBMS 对数据的控制功能:数据的安全性保护;数据的完整性检查;并发控制;数据库恢复。 数据库技术研究领域:数据库管理系统软件的研发;数据库设计;数据库理论。数据模型要素 数据结构:描述数据库

【软考】信息系统项目管理师(高项)备考笔记——信息系统项目管理基础

信息系统项目管理基础 日常笔记 项目的特点:临时性(一次性)、独特的产品、服务或成果、逐步完善、资源约束、目的性。 临时性是指每一个项目都有确定的开始和结束日期独特性,创造独特的可交付成果,如产品、服务或成果逐步完善意味着分步、连续的积累。例如,在项目早期,项目范围的说明是粗略的,随着项目团队对目标和可交付成果的理解更完整和深入时,项目的范围也就更具体和详细。 战略管理包括以下三个过程

【软考】信息系统项目管理师(高项)备考笔记——信息化与信息系统

信息化与信息系统 最近在备考信息系统项目管理师软考证书,特记录笔记留念,也希望可以帮到有需求的人。 因为这是从notion里导出来的,格式上可能有点问题,懒的逐条修改了,还望见谅! 日常笔记 核心知识 信息的质量属性:1.精确性 2.完整性 3.可靠性 4.及时性 5.经济性 6.可验证下 7.安全性 信息的传输技术(通常指通信、网络)是信息技术的核心。另外,噪声影响的是信道