首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    RxSwift 系列(六) -- Mathematical and Aggregate Operators

    前言 本篇文章将要学习RxSwift中数学和集合操作符,在RxSwift中包括了: toArray reduce concat toArray 将一个Observable序列转化为一个数组,并转换为一个新的...disposed(by: disposeBag) 运行结果: [1, 2, 3, 4, 5] reduce 使用一个初始值和一个操作符,对Observable序列中的所有元素进行累计操作,并转换成单一事件信号...(PS:和map有的区别就是:map针对单个元素进行操作,reduce针对所有元素累计操作) let disposeBag = DisposeBag() Observable.of(1,10,100...Observable序列合并成一个Observable序列,当一个Observable序列中的所有元素成功发射完成之后,才会发射另一个Observable序列中的元素。...在第一个Observable发射完成之前,第二个Observable发射的事件都会被忽略,但会接收第一个Observable发射完成前第二个Observable发射的最后一个事件。

    1.3K120

    RxSwift底层原理及结合MVVM架构在项目中的应用

    RxCocoa:是基于 RxSwift 针对于 iOS 开发的一个库,它通过 Extension 的方法给原生的比如 UI 控件添加了 Rx 的特性,使得我们更容易订阅和响应这些控件的事件 基本概念 -...####被观察者(Observable) 它主要负责产生事件,实质上就是一个可被监听的序列(Sequence)。 ObservableT> 这个类就是Rx框架的基础,我们称它为可观察序列。...####订阅者(Subscriber) 事件的最终处理者 ####管道(Sink) Observer 和 Observable 沟通的桥梁:Sink相当与一个加工者,可以将源事件流转换成一个新的事件流,...如果将事件流比作水流,事件的传递过程比作水管,那么Sink就相当于水管中的一个转换头。...那也就是说,sink从某种程度来说也是Observable 通过sink就可以完成从Observable到Obsever的转变。

    2.1K10

    RxSwift 系列(九) -- 那些难以理解的概念

    O类型的序列,返回一个O.E类型的序列,也就是有原来序列里元素组成的新序列。...而flatMap对原有序列中的元素进行改造和处理,每一个元素返回一个新的sequence,然后把每一个元素对应的sequence合并为一个新的sequence序列。...3scott 4scott 5scott 我们使用map对序列中每一个元素进行了处理,返回的是一个元素,而使用flatMap需要返回的序列。...flatMap函数返回的是一个新的序列,将原来元素进行了处理,返回这些处理后的元素组成的新序列 map函数 + 合并函数 = flatMap函数 flatMap函数在实际应用中有很多地方需要用到,比如网络请求...,有两个参数,第一个参数是一个元素本身,第一个参数是一个闭包,闭包参数是元素本身,还有他的一个属性。

    2.2K70

    Rxjava 2.x 源码系列 - 变换操作符 Map(上)

    /Observable cast 强转 传入一个class,对Observable的类型进行强转. flatMap 平铺映射,从数据流的每个数据元素中映射出多个数据,并将这些数据依次发射。...groupby 分组,将原来的Observable分拆为Observable集合,将原始Observable发射的数据按Key分组,每一个Observable发射一组不同的数据 to… 将数据流中的对象转换为...List/SortedList/Map/MultiMap集合对象,并打包发射 timeInterval 将每个数据都换为包含本次数据和离上次发射数据时间间隔的对象并发射 timestamp 将每个数据都转换为包含本次数据和发射数据时的时间戳的对象并发射...从 Demo 说起 接下来,我们一起来看一下一个 demo,我们通过 map 操作符将 Integer 转化为 String。...的 subscribe 方法,即第一个 Observable 的 subscribe 方法 在第一个 Observable 的 subscribe 方法里面,又会调用当前 Observable 的

    41320

    RxJava 1.x 笔记:创建型操作符

    比如 Iterable 迭代器,可以转换成一系列同步的 Observable;Future,可以转做每次只发射一个元素的 Observable。...通过显式地将其他类型转换成 Observable,就可以方便地体会 Rx 的便捷之处。 大部分 ReactiveX 的实现语言都提供了将特定的对象和数据结构转换为 Observables 的方法。...(future)); } from() 支持参数为数组、Iterable、Future,也就是说,这个操作符可以将数组、Iterable 和 Future 类型的数据转换为 Observable。...Just 操作符用于将一个元素转换成 Observable,然后将它发射出去。...在 RxJava 中 From 操作符可以将 Future 转换为 Observable,与 start 相似。 Timer Timer 用于创建一个在指定延迟后发射值的 Observable。 ?

    1.1K80

    Rx Java 异步编程框架

    在这种情况下,通常有两个选项来修复转换: 1) 转换为所需的类型; 2) 查找并使用支持不同类型的特定运算符的重载。...Type erasure 类型擦除: 许多期望用户提供返回反应类型的函数的操作符不能重载,因为围绕 FunctionT, X> 的类型擦除将这些方法签名转换为重复类型。...Flowable 为操作符提供 128 个元素的默认缓冲区大小,可以通过 bufferSize () 访问,可以通过系统参数 rx3.buffer-size 全局重写。...toSingle Single 将一个发射单个值的Observable转换为一个Single zip and zipWith Single 将多个Single转换为一个,后者发射的数据是对前者应用一个函数后的结果...range 变换操作 flatMap 优化循环、嵌套: FlatMap将一个发射数据的Observable变换为多个Observables,然后将它们发射的数据合并后放进一个单独的Observable

    3.1K20

    Rxjs 响应式编程-第二章:序列的深入研究

    例如, Rx.Observable.first接受一个Observable和一个可选函数,并返回满足函数条件布尔值的第一个元素。...每个新元素都将返回具有更新值的同一对象。 当序列结束时,reduce可以通过调用onNex返回t包含最终总和和最终计数的对象。但在这里我们使用map来返回将总和除以计数的结果。...我们可以看到A(A1,A2,A3)中的每个元素也是可观察序列。 一旦我们使用变换函数将flatMap应用于A,我们得到一个Observable,其中包含A的不同子元素中的所有元素。...为了了解它是如何工作的,我们将编写一个简单的函数来获取JSON字符串数组,并使用JSON.parse返回一个Observable,它发出从这些字符串解析的对象: 为了了解它是如何工作的,我们将编写一个简单的函数来获取...请注意我们如何添加一个map运算符,将地震对象转换为仅包含我们可视化所需信息的简单对象:纬度,经度和地震震级。 我们在subscribeoperator中写的功能越少越好。

    4.2K20

    RxSwift 系列(三) -- Combination Operators

    RxSwift 系列(三) -- Combination Operators 前言 本篇文章将要学习如何将多个Observables组合成一个Observable。...释放元素之前,发射指定的元素序列。...merge 将多个Observable组合成单个Observable,并且按照时间顺序发射对应事件。更多详情 ? 感觉和git的merge操作是一样的效果。...subject2.onNext("③") zip 将多个Observable(注意:必须是要成对)组合成单个Observable,当有事件到达时,会在每个序列中对应的索引上对应的元素发出。...,因此不会打印,让我们看看打印结果: A--1 B--2 combineLatest 当一个项目由两个Observables发射时,通过一个指定的功能将每个Observable观察到的最新项目组合起来,

    86570

    走进 RxSwift 之冷暖自知

    RxSwift 认为不管是 Cold 还是 Hot,它们都是 Observable,它们同属于一个抽象,而不是两种独立的类型。...实战小剧场 下面我随便举个例子,我们要完成的功能是发送网络请求,将返回的数据显示到一个 TableView 上。...如何一眼区别 CO 和 HO 前面也说过了,不管是冷是热,它们都是 Observable,虽然我顺便提了几个 RxSwift 中典型的 CO 和 HO,但如果是一个自定义的 Observable 呢,要如何区分它是冷是热呢...之前我在 走进 RxSwift 之观察者模式中解释了Observable.empty的实现,虽然那是比较老的版本,不过核心原理是一样的。...我之前试着实现过一个简化版的 Rx 模型,可以用create方法创建一个 CO,用 Swift2.2 写的,大家可以稍微看下,领会精神:) enum EventT> { case Next(T

    2.4K10

    【iOS】RxSwift官方Example5--计算器【转】

    结果还真给我搜索到了,看完后,发现这篇播客写的非常详细,推荐学Rxswift的都去看看。 简介 还是先来直接看演示的例子吧。 ? 计算器 功能就不介绍了。...map 方法将按钮点击事件转换为对应的命令。...如: 将 allClearButton 点击事件转换为清除命令,将 plusButton 点击事件转换为相加命令,将 oneButton 点击事件转换为添加数字1命令。...最后使用 merge 操作符将这些命令合并。于是就得到了我们所需要的命令序列。 命令 -> 状态之间的转换 几乎每个页面都是有状态的。我们通过命令序列来对状态进行修改,然后产生一个新的状态。...oneOperandAndOperator 一个操作数和一个运算符,例如:进入页面后,输入 1 + 时的状态 twoOperandsAndOperator 两个操作数和一个运算符,例如:进入页面后,输入

    82610

    RxSwift 实战操作【注册登录】

    本篇文章是基于RxSwift3.0写的,采用的是Carthage第三方管理工具导入的RxSwift3.0,关于Carthage的安装和使用,请参考Carthage的安装和使用。 最终效果 ?...Driver类型的,第一个是username处理结果流,第二个是登录按钮是否可用的流,第三个是登录结果流; 下面的init方法,看着和刚才的注册界面不一样。...) } } 从本地获取数据,然后转换成Contact模型; 我们返回的是一个元素是Contact数组的Observable流。...是一个Driver流,因为更新tableView是UI操作; 然后我们使用service去获取数据的操作应该在后台线程去运行,所以添加了observeOn操作; flatMap返回新的observable...text = element.phone }.disposed(by: disposeBag) } 发现木有,这里我们么有使用到DataSource,将数据绑定到tableView的items元素

    4.9K60
    领券