官术网_书友最值得收藏!

Other Observable factory methods

Before moving forward with Observer, subscribing, unsubscribing, and Subjects, let's try our hands on a few other factory methods of Observable.

So, let's look at this code first, and then we will try to learn it line by line:

    fun main(args: Array<String>) { 
      val observer: Observer<Any> = object : Observer<Any> { 
        override fun onComplete() { 
            println("All Completed") 
        } 
 
        override fun onNext(item: Any) { 
            println("Next $item") 
        } 
 
        override fun onError(e: Throwable) { 
            println("Error Occured ${e.message}") 
        } 
 
        override fun onSubscribe(d: Disposable) { 
            println("New Subscription ") 
        } 
      }//Create Observer 
 
      Observable.range(1,10).subscribe(observer)//(1) 
      Observable.empty<String>().subscribe(observer)//(2) 
 
      runBlocking {    
Observable.interval(300,TimeUnit.MILLISECONDS).
subscribe(observer)//(3) delay(900) Observable.timer(400,TimeUnit.MILLISECONDS).
subscribe(observer)//(4) delay(450) } }

On comment (1), we created Observable with the Observable.range() factory method. This method creates an Observable and emits integers with the supplied start parameter until it emits a number of integers as per the count parameter.

On comment (2), we created Observable with the Observable.empty() method. This method creates Observable and emits onComplete() right away, without emitting any items with onNext().

On comment (3) and comment (4), we used two interesting Observable factory methods. The method on comment (3), Observable.interval(), emits numbers sequentially starting from 0, after each specified interval. It will continue emitting until you unsubscribe and until the program runs. Whereas, the method on comment (4), Observable.timer(), will emit only once with 0 after the specified time elapsed.

Here is the output if you are curious:

主站蜘蛛池模板: 扎囊县| 墨竹工卡县| 沁阳市| 瑞昌市| 卓资县| 阳江市| 河间市| 福州市| 高州市| 科尔| 桃园市| 乌兰察布市| 岳阳市| 中超| 柘荣县| 张家港市| 黔西县| 专栏| 塔城市| 清苑县| 长丰县| 福建省| 杨浦区| 宁化县| 大悟县| 河源市| 耒阳市| 阜阳市| 吉林市| 兴隆县| 赣州市| 东光县| 屏山县| 威海市| 彭水| 华池县| 宁阳县| 突泉县| 禄丰县| 鹿邑县| 静宁县|