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

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:

主站蜘蛛池模板: 冷水江市| 长乐市| 连江县| 庆城县| 桓仁| 屯门区| 丰镇市| 曲沃县| 汪清县| 汉中市| 湟中县| 秭归县| 尉氏县| 和硕县| 桦川县| 阳曲县| 嘉兴市| 南丹县| 道孚县| 平罗县| 泗水县| 闽清县| 凤庆县| 建瓯市| 崇信县| 西峡县| 株洲县| 大宁县| 华蓥市| 泸水县| 郎溪县| 高阳县| 高唐县| 绿春县| 舞阳县| 日照市| 长顺县| 恩施市| 永靖县| 仁怀市| 井冈山市|