一、描述
发射来自原始Observable的值,如果原始Observable没有发射任何值,就发射一个默认值。
DefaultIfEmpty简单的精确地发射原始Observable的值,如果原始Observable没有发射任何数据正常终止(以onCompletedd的形式),DefaultIfEmpty返回的Observable就发射一个你提供的默认值。
RxJava将这个操作符实现为defaultIfEmpty。它默认不在任何特定的调度器上执行。
还有一个新的操作符switchIfEmpty,不在RxJava 1.0.0版中,它和defaultIfEmtpy类似,不同的是,如果原始Observable没有发射数据,它发射一个备用Observable的发射物。
二、示意图
三、示例代码
1 | Observable.empty() |
四、运行结果
1 | onNext: 1 |
五、参考资料
PS:欢迎关注 SherlockShi 个人博客