簡體   English   中英

使用Kotlin處理錯誤RXJava Android

[英]Handling Error RXJava Android with Kotlin

嗨,我是RxJava和Kotlin的新手,我放棄了一些關於它的概念。

我有這樣的“api”:

interface VehiclesService {
    @GET("/vehicles/")
    fun getVehicles(): Single<List<Vehicle>>
}

然后我創建了改造客戶端等。像這樣:

var retrofit = RetrofitClient().getInstance()
vehiclesAPI = retrofit!!.create(VehiclesService ::class.java)

最后我打電話:

private fun fetchData() {
        compositeDisposable.add(vehiclesAPI .getVehicles()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe { vehicles -> displayData(vehicles) }
        )
    }

這是我嘗試啟動時出現錯誤的地方:

The exception was not handled due to missing onError handler in the subscribe() method call

我知道錯誤是非常明確的。 所以我知道缺少什么,但我不知道的是如何處理這個錯誤。

我嘗試添加: .doOnError { error -> Log.d("MainClass",error.message) }但仍然告訴相同的錯誤消息。

您可以傳遞另一個lambda來subscribe以處理特定流的錯誤,如下所示:

    private fun fetchData() {
    compositeDisposable.add(vehiclesAPI .getVehicles()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe( { vehicles -> displayData(vehicles) }, { throwable -> //handle error } )
    )
}

PS: doOnError和其他副作用運算符,無論如何都不會影響流,它們只是預測為副作用操作發出的值,例如日志記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM