fbpx

Course Content

Total learning: 16 lessons Time: 1 week

Оператор Observable.create()

Observable.create()

Одним из самых мощных методов для создания Observable является метод Observable.create(). create() – один из самых полезных методов, и его следует использовать для оборачивания кода в источники данных.

Для использования этого метода, необходимо в качестве аргумента передать имплементацию интерфейса ObservableOnSubscribe с методом subscribe() который вызывается каждый раз при появлении нового подписчика. В этот callback передаётся ObservableEmitter, с помощью которого мы можем передать необходимые данные с помощью метода onNext() или оповестить подписчика об ошибке или завершении с помощью методов onError() или onComplete() соответственно.

Пример оператора Observable.onCreate()

С помощью create() вы можете обернуть различные SDK, работу c UI, таким образом, чтобы со старым кодом можно было работать в реактивном стиле. 

Результат работы оператора create()

Например, вы можете обернуть работу с UI компонентом и таким образом подписываться на события, вызываемые действиями пользователя, например: нажатия, ввод текста, свайпы и другие. Вот примеры наиболее частых кейсов для использования:

  • Необходим для оборачивания callback’ов в реактивный код
  • Оборачивание Firebase SDK (Remote Config)
  • Оборачивание UI событий чтобы работать в реактивном стиле

В данном примере с помощью create() мы можем передавать событие, что пользователь нажал на Drawable.

Работа с событиями UI через оператор create()

Кроме этого обратите внимание на метод setCancelable(). Создавая Observable с помощью метода create(), можно совершать действия, когда от источника отписываются. Например, чтобы не было утечек памяти или для отмены запросов.