RxJava:使用“第一个”运算符时引发IllegalArgumentException
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了RxJava:使用“第一个”运算符时引发IllegalArgumentException,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含802字,纯文字阅读大概需要2分钟。
内容图文
![RxJava:使用“第一个”运算符时引发IllegalArgumentException](/upload/InfoBanner/zyjiaocheng/663/ec9582a5dd684f19aa78b14dd8fe6b63.jpg)
当我使用Observable.first()运算符时,出现了IllegalArgumentException消息,消息为“序列包含太多元素”.
这是一个可以重现异常的简化测试代码:
Subject<Integer, Integer> subject = BehaviorSubject.create();
subject.first()
.subscribe(integer -> subject.onNext(1));
subject.onNext(0);
这些代码是从一个非常复杂的真实项目中提取的,我认为我不能轻易解释为什么我需要做这个奇怪的事情.
所以我只想问一个问题:
这是RxJava中的错误还是我自己的用法不正确?
如果使用不正确,我想我需要重写逻辑以避免这些代码.
非常感谢.
解决方法:
有一个带汇入运算符(第一个使用)的known bug,存在重入问题,下一个版本1.0.15将包含此修复程序.抱歉,没有ETA.
顺便说一句,如果不存在此错误,为什么还要在代码中执行此操作?您是否要向其他订户发送信号?
编辑
解决方法:
任何执行序列化的运算符都可以用来解决错误.也许最简单的方法是使用BehaviorSubject.create().toSerialized().
内容总结
以上是互联网集市为您收集整理的RxJava:使用“第一个”运算符时引发IllegalArgumentException全部内容,希望文章能够帮你解决RxJava:使用“第一个”运算符时引发IllegalArgumentException所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。