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

    RxJava2--Flowable与BackPress

    最全面而详细的讲解 背压介绍 当上下游在不同的线程中,通过Observable发射,处理,响应数据流时,如果上游发射数据的速度快于下游接收处理数据的速度,这样对于那些没来得及处理的数据就会造成积压,这些数据既不会丢失...,也不会被垃圾回收机制回收,而是存放在一个异步缓存池中,如果缓存池中的数据一直得不到处理,越积越多,最后就会造成内存溢出,这便是响应式编程中的背压(backpressure)问题。...= System.out.println("onError......,能够接收到Flowable最新发射的一条数据 BUFFER ----> BufferAsyncEmitter: 默认的策略。...= System.out.println("onError...$t") }) 就会输出: onNext...0 onNext...1

    86030

    Android RxJava:一文带你全面了解 背压策略

    但由于在同步订阅关系的场景也可能出现流速不匹配的问题,所以在讲解异步情况后,会稍微讲解一下同步情况,以方便对比 5.1 控制 观察者接收事件 的速度 5.1.1 异步订阅情况 简介 ?...下图 = 当缓存区存满时(128个事件)溢出报错的原理图 ?...Log.d(TAG, "接收到了事件 " + integer); } @Override public void onError...面向对象:针对缓存区 作用:当缓存区大小存满、被观察者仍然继续发送下1个事件时,该如何处理的策略方式 缓存区大小存满、溢出 = 发送事件速度 > 接收事件速度 的结果 = 发送 & 接收事件不匹配的结果...**模式1:BackpressureStrategy.ERROR** - 问题:发送事件速度 > 接收事件 速度,即流速不匹配 具体表现:出现当缓存区大小存满(默认缓存区大小 = 128)、被观察者仍然继续发送下

    2K20

    Carson带你学Android:图文详解RxJava背压策略

    Flowable在背压策略功能上的使用 注: 由于第2节中提到,使用背压的场景 = 异步订阅关系,所以下文中讲解的主要是异步订阅关系场景,即 被观察者 & 观察者 工作在不同线程中 但由于在同步订阅关系的场景也可能出现流速不匹配的问题...Log.d(TAG, "接收到了事件 " + integer); } @Override public void onError...request(n),而该内部调用会在一开始就调用request(128) // 为什么是调用request(128)下面再讲解...模式1:BackpressureStrategy.ERROR 问题:发送事件速度 > 接收事件 速度,即流速不匹配 具体表现:出现当缓存区大小存满(默认缓存区大小 = 128)、被观察者仍然继续发送下...模式5:BackpressureStrategy.LATEST 问题:发送事件速度 > 接收事件 速度,即流速不匹配 具体表现是:出现当缓存区大小存满(默认缓存区大小 = 128)、被观察者仍然继续发送下

    1.2K10

    Angular 异常处理

    这里我们先来定义一个 ErrorService: import { Injectable } from "@angular/core"; import { HttpClient } from "@angular...) {} postError(error: any) { this.http .post(this.errorServerUrl, error) .pipe(mapTo...zone.run(() => { this.tick(); }); }}); } } 在 ApplicationRef 构造函数内部,会订阅 NgZone 对象的 onMicrotaskEmpty 属性,即当微任务执行完成后..._runningTick = false; wtfLeave(scope); } } 总结 本文通过一个简单的示例,简单介绍了在 Angular 项目中如何自定义异常处理器,此外也简单介绍了...其实目前市面上也有一些不错的异常监控平台,比如 FunDebug,该平台提供的功能还是蛮强大的,也支持 Angular 或 Ionic 项目,感兴趣的同学可以了解一下 FunDebug Angular

    1.3K20

    Android RxJava:这是一份面向初学者的RxJava使用指南

    Next事件 & 观察者接收到时,会调用该复写方法 进行响应 @Override public void onNext(Integer value) {...(TAG, "对Error事件作出响应"); } // 当被观察者生产Complete事件& 观察者接收到时,会调用该复写方法 进行响应...Next事件 & 观察者接收到时,会调用该复写方法 进行响应 @Override public void onNext(Integer value) {...(TAG, "对Error事件作出响应"); } // 当被观察者生产Complete事件& 观察者接收到时,会调用该复写方法 进行响应...,从而回调观察者中的对应方法从而响应被观察者生产的事件 // 从而实现被观察者调用了观察者的回调方法 & 由被观察者向观察者的事件传递,即观察者模式 // 同时也看出:Observable

    44950

    Carson带你学Android:面向初学者的RxJava使用指南

    Next事件 & 观察者接收到时,会调用该复写方法 进行响应 @Override public void onNext(Integer value) {...(TAG, "对Error事件作出响应"); } // 当被观察者生产Complete事件& 观察者接收到时,会调用该复写方法 进行响应...Next事件 & 观察者接收到时,会调用该复写方法 进行响应 @Override public void onNext(Integer value) {...(TAG, "对Error事件作出响应"); } // 当被观察者生产Complete事件& 观察者接收到时,会调用该复写方法 进行响应...,从而回调观察者中的对应方法从而响应被观察者生产的事件 // 从而实现被观察者调用了观察者的回调方法 & 由被观察者向观察者的事件传递,即观察者模式 // 同时也看出:Observable

    30720

    给初学者的RxJava2.0教程(一)

    但是,请注意,并不意味着你可以随意乱七八糟发射事件,需要满足一定的规则: 上游可以发送无限个onNext, 下游也可以接收无限个onNext....当上游发送了一个onError后, 上游onError之后的事件将继续发送, 而下游收到onError事件之后将不再继续接收事件. 上游可以不发送onComplete或onError....最为关键的是onComplete和onError必须唯一并且互斥, 即不能发多个onComplete, 也不能发多个onError, 也不能先发一个onComplete, 然后再发一个onError,...比如发送多个onComplete是可以正常运行的, 依然是收到第一个onComplete就不再接收了, 但若是发送多个onError, 则收到第二个onError事件会导致程序会崩溃....那么在RxJava中怎么去理解它呢, 对应于上面的水管的例子, 我们可以把它理解成两根管道之间的一个机关, 当调用它的dispose()方法时, 它就会将两根管道切断, 从而导致下游收不到事件.

    88960

    Carson带你学Android:RxJava功能性操作符

    ,从而回调观察者中的对应方法从而响应被观察者生产的事件 // 从而实现被观察者调用了观察者的回调方法 & 由被观察者向观察者的事件传递,即观察者模式 // 同时也看出:Observable...(1); e.onNext(2); e.onNext(3); e.onError(new Throwable...当Observable每发送1次数据事件就会调用1次 .doOnEach(new Consumer>() {...,让被观察者(Observable)重新发射数据 接收到 onError()时,重新订阅 & 发送事件 Throwable 和 Exception都可拦截 类型 共有5种重载方法 <-- 1. retry...重复不断地发送被观察者事件 对应操作符类型 repeat() & repeatWhen() repeat() 作用 无条件地、重复发送 被观察者事件 具备重载方法,可设置重复创建次数 具体使用 // 不传入参数

    91410

    Android RxJava操作符详解 系列:功能性操作符

    ,从而回调观察者中的对应方法从而响应被观察者生产的事件 // 从而实现被观察者调用了观察者的回调方法 & 由被观察者向观察者的事件传递,即观察者模式 // 同时也看出:Observable...(1); e.onNext(2); e.onNext(3); e.onError(new Throwable...当Observable每发送1次数据事件就会调用1次 .doOnEach(new Consumer>() {...retry() 作用 重试,即当出现错误时,让被观察者(Observable)重新发射数据 接收到 onError()时,重新订阅 & 发送事件 Throwable 和 Exception都可拦截...重复不断地发送被观察者事件 对应操作符类型 repeat() & repeatWhen() repeat() 作用 无条件地、重复发送 被观察者事件 具备重载方法,可设置重复创建次数 具体使用 // 不传入参数

    1.1K10

    Carson带你学Android:手把手带你入门神秘的Rxjava

    Next事件 & 观察者接收到时,会调用该复写方法 进行响应 @Override public void onNext(Integer value) {...(TAG, "对Error事件作出响应"); } // 当被观察者生产Complete事件& 观察者接收到时,会调用该复写方法 进行响应...Next事件 & 观察者接收到时,会调用该复写方法 进行响应 @Override public void onNext(Integer value) {...(TAG, "对Error事件作出响应"); } // 当被观察者生产Complete事件& 观察者接收到时,会调用该复写方法 进行响应...,从而回调观察者中的对应方法从而响应被观察者生产的事件 // 从而实现被观察者调用了观察者的回调方法 & 由被观察者向观察者的事件传递,即观察者模式 // 同时也看出:Observable

    43320

    Android:手把手带你入门神秘的 Rxjava

    Next事件 & 观察者接收到时,会调用该复写方法 进行响应 @Override public void onNext(Integer value) {...(TAG, "对Error事件作出响应"); } // 当被观察者生产Complete事件& 观察者接收到时,会调用该复写方法 进行响应...Next事件 & 观察者接收到时,会调用该复写方法 进行响应 @Override public void onNext(Integer value) {...(TAG, "对Error事件作出响应"); } // 当被观察者生产Complete事件& 观察者接收到时,会调用该复写方法 进行响应...,从而回调观察者中的对应方法从而响应被观察者生产的事件 // 从而实现被观察者调用了观察者的回调方法 & 由被观察者向观察者的事件传递,即观察者模式 // 同时也看出:Observable

    63440

    Android:这是一篇 清晰 易懂的Rxjava 入门教程

    Next事件 & 观察者接收到时,会调用该复写方法 进行响应 @Override public void onNext(Integer value) {...(TAG, "对Error事件作出响应"); } // 当被观察者生产Complete事件& 观察者接收到时,会调用该复写方法 进行响应...Next事件 & 观察者接收到时,会调用该复写方法 进行响应 @Override public void onNext(Integer value) {...(TAG, "对Error事件作出响应"); } // 当被观察者生产Complete事件& 观察者接收到时,会调用该复写方法 进行响应...,从而回调观察者中的对应方法从而响应被观察者生产的事件 // 从而实现被观察者调用了观察者的回调方法 & 由被观察者向观察者的事件传递,即观察者模式 // 同时也看出:Observable

    84510
    领券