Функция подписки не работает

Ankur_009 спросил: 12 мая 2018 в 03:51 в: kotlin

Я пытаюсь основать 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 ответ

Kiskae ответил: 12 мая 2018 в 03:59

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