一、描述
返回一个Observable,它发射一个类似于函数声明的值。
编程语言有很多种方法可以从运算结果中获取值,它们的名字一般叫functions, futures, actions, callables, runnables等等。在Start目录下的这组操作符可以让它们表现得像Observable,因此它们可以在Observables调用链中与其它Observable搭配使用。
Start操作符的多种RxJava实现都属于可选的rxjava-async模块。
rxjava-async模块包含start操作符,它接受一个函数作为参数,调用这个函数获取一个值,然后返回一个会发射这个值给后续观察者的Observable。
注意:这个函数只会被执行一次,即使多个观察者订阅这个返回的Observable。
二、示意图
三、示例代码
由于start操作符是属于可选的rxjava-async模块的,所以需要加入下面的依赖:
1 | compile 'io.reactivex:rxjava-async-util:0.21.0' |
1 | Async.start(new Func0<Integer>() { |
四、运行结果
延时5秒后,打印出如下信息:
1 | onNext: 16 |
项目代码已上传到Github:https://github.com/SherlockShi/RxJavaBestPractise
五、更多
跟start相关的操作符还有:
- toAsync
- startFuture
- deferFuture
- fromAction
- fromCallable
- fromRunnable
- forEachFuture
- runAsync
详情可查阅下面的参考资料。
六、参考资料
PS:欢迎关注 SherlockShi 个人博客