如何正确处理subcribe()方法?

问题描述 投票:0回答:1

我在代码中遇到subscribe()方法的麻烦(下面是调试控制台的消息)

io.reactivex.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | Expected a string but was BEGIN_OBJECT at line 1 column 2 path $

而且我不知道该如何正确处理,我的代码部分从这里开始

private fun startSearch(query: String) {
        disposables.addAll(IMyService.searchCourse(query)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe ({ courses ->
                adapter = CourseAdapter(baseContext, courses)
                recycler_search.adapter = adapter
            }, {
                Toast.makeText(this, "Not found", Toast.LENGTH_LONG).show()
            }))
    }

    private fun getAllCourses() {
        disposables.addAll(IMyService.coursesList
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe ({ courses ->
                adapter = CourseAdapter(baseContext, courses)
                recycler_search.adapter = adapter
            }, {
                Toast.makeText(this, "Not found", Toast.LENGTH_LONG).show()
            }))
    }

并且有完整的code

parameters

android kotlin reactivex
1个回答
0
投票
在反应式编程中,将订户传递给Observable应该涉及如何处理三种情况:

    成功
  1. onError
  2. onFailure
  • 但是,如果您只是想传递一个您肯定知道不会有任何错误或失败并且确定它将始终成功的订阅者,则只需尝试@EpicPandaForce提到的onSuccess或onFailure。但是,一个好的做法是始终执行这三种情况,这是您所不知道的。
  • © www.soinside.com 2019 - 2024. All rights reserved.