функция подписки не работает - PullRequest
0 голосов
/ 05 июня 2018

Я пробую основы RxJava2.

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_vogella)
        setSupportActionBar(toolbar)

        val todoObserverable= createObservable();


        try {
            todoObserverable
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe ({ t-> Log.e(TAG,t.title)}, {e-> Log.e(TAG,e.localizedMessage)})

        }catch (e:Exception){
            e.printStackTrace()
        }

            }

получить наблюдаемую функцию:

 fun createObservable():Observable<Book>{

        val bookObservable: Observable<Book> = Observable.create { object :ObservableOnSubscribe<Book>{

            override fun subscribe(emitter: ObservableEmitter<Book>) {

                Log.e(TAG,"anc")

                try {
                    val bookArrayList:ArrayList<Book> = ArrayList()
                    val bookOne= Book("XYZ")
                    val bookTwo= Book("ANC")
                    val bookThree= Book("3ewrXYZ")
                    val bookFour= Book("XwerweYZ")

                    bookArrayList.add(bookOne)
                    bookArrayList.add(bookTwo)
                    bookArrayList.add(bookThree)
                    bookArrayList.add(bookFour)

                    for (todo in bookArrayList){
                        emitter.onNext(todo)
                        Log.e(TAG,"on next")
                    }
                    emitter.onComplete()


                }catch (e:Exception){
                    e.printStackTrace()
                }
            }

        }
        }

        return bookObservable;

    }

Но я не могу напечатать название книги.Это не дает мне никакой ошибки или исключения.Я попытался отладить createObservable (), но курсор не идет внутри функции подписки.Любой намек будет полезен.

1 Ответ

0 голосов
/ 05 июня 2018

Observable.create { object :ObservableOnSubscribe<Book>{ - это по существу создает ObservableOnSubscribe в пределах ObservableOnSubscribe.Объявление объекта является избыточным или вы можете удалить лямбда-определение.(Observable.create(object : ETC))

...