SpringCloudRPC核心原理:RxJava响应式编程框架,创建型操作符

(8)never():创建一个不弹射任何数据的Observable主题对象。

接下来以just、from、range、interval、defer五个操作符为例进行介绍。

SpringCloudRPC核心原理:RxJava响应式编程框架,创建型操作符

just操作符

========

Observable的just操作符用于创建一个Observable主题,并且会将实参数据弹射出来。just操作符可接收多个实参,所有实参都将被逐一弹射。

just操作符的演示代码如下:

package com.crazymaker.demo.rxJava.basic;

import lombok.extern.slf4j.Slf4j;

import org.junit.Test;

import rx.Observable;

@Slf4j

public class CreaterOperatorDemo {

/**

*演示just的基本使用

*/

@Test

public void justDemo() {

//发送一个字符串"hello world"

Observable.just(“hello world”)

.subscribe(s -> log.info(“just string->” + s));

//逐一发送1,2,3,4四个整数

Observable.just(1, 2, 3, 4)

.subscribe(i -> log.info(“just int->” + i));

}

}

运行之后的结果大致如下:

20:53:17.653 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just string->hello world

20:53:17.658 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->1

20:53:17.659 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->2

20:53:17.659 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->3

20:53:17.659 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->4

说明just操作符只是简单的原样弹射,如果实参是数组或者Iterable迭代器对象,数组或Iterable就会被当作单个数据弹射。

虽然just操作符可以弹射多个数据,但是上限为9个。

from操作符

=======

from操作符以数组、Iterable迭代器等对象作为输入,创建一个Observable主题对象,然后将实参(如数组、Iterable迭代器等)中的数据元素逐一弹射出去。

from操作符的演示代码如下:

@Slf4j

public class CreaterOperatorDemo {

/***演示 from的基本使用 */

@Test

public void fromDemo() {

//逐一发送一个数组中的每一个元素

String[] items = {“a”, “b”, “c”, “d”, “e”, “f”};

Observable.from(items)

.subscribe(s -> log.info(“just string->” + s));

//逐一发送迭代器中的每一个元素

Integer[] array = {1, 2, 3, 4};

List list = Arrays.asList(array);

Observable.from(list)

.subscribe(i -> log.info(“just int->” + i));

}

}

运行上述演示代码,结果如下:

21:10:18.537 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just string->a

21:10:18.540 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just string->b

21:10:18.540 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just string->c

21:10:18.540 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just string->d

21:10:18.540 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just string->e

21:10:18.541 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just string->f

21:10:18.543 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->1

21:10:18.544 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->2

21:10:18.544 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->3

21:10:18.545 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->4

从以上输出可以看出,from()操作将传入的数组或Iterable拆分成单个元素依次弹射出去。

range操作符

=========

range操作符以一组整数范围作为输入,创建一个Observable主题对象并弹射该整数范围内包含的所有整数。

range操作符的演示代码如下:

package com.crazymaker.demo.rxJava.basic;

@Slf4j

public class CreaterOperatorDemo {

/**演示 range的基本使用 */

@Test

public void rangeDemo() {

//逐一发一组范围内的整数序列

Observable.range(1, 10)

.subscribe(i -> log.info(“just int->” + i));

}

}

运行上述演示代码,输出的结果如下:

21:24:50.507 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->1

21:24:50.513 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->2

21:24:50.513 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->3

21:24:50.513 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->4

21:24:50.513 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->5

21:24:50.513 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->6

21:24:50.513 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->7

21:24:50.513 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->8

21:24:50.514 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->9

21:24:50.514 [main] INFO c.c.d.r.b.CreaterOperatorDemo - just int->10

Observab

【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

le.range(1,10)表示弹射在区间[1,10]范围内的数据,其范围包含区间的上限和下限。

interval操作符

============

interval操作符创建一个Observable主题对象(消息流),该消息流会按照固定时间间隔发射整数序列。interval操作符的演示代码如下:

package com.crazymaker.demo.rxJava.basic;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值