Spec-Zone.ru › ReactiveX

Подписка на Scheduler

указать Scheduler, на котором будет работать Observable
SubscribeOn

Многие реализации ReactiveX используют “Schedulers”, чтобы управлять переходами Observable между потоками в многопоточной среде. Вы можете указать Observable на работу на конкретном Scheduler, вызвав оператор SubscribeOn Observable.

Оператор ObserveOn аналогичен, но ограничен. Он указывает Observable отправлять уведомления наблюдателям на указанном Scheduler.

В некоторых реализациях также есть оператор UnsubscribeOn.

ObserveOn and SubscribeOn

По умолчанию Observable и цепочка операторов, которые к нему применяются, выполняют свою работу и уведомляют своих наблюдателей в том же потоке, в котором вызывается метод Subscribe. Оператор SubscribeOn изменяет это поведение, указав другой Scheduler для работы Observable. Оператор ObserveOn указывает другой Scheduler, который Observable будет использовать для отправки уведомлений своим наблюдателям.

Как показано на этой иллюстрации, оператор SubscribeOn определяет, в каком потоке Observable начнёт работать, независимо от того, в какой точке цепочки операторов этот оператор был вызван. ObserveOn, с другой стороны, влияет на поток, который Observable будет использовать *ниже*, где этот оператор появляется. По этой причине вы можете вызывать ObserveOn несколько раз в различных точках цепочки операторов Observable, чтобы изменить, в каких потоках работают некоторые из этих операторов.

См. также

  • Scheduler
  • ObserveOn
  • Rx Workshop: Schedulers
  • RxJava Threading Examples by Graham Lea
  • Введение в Rx: SubscribeOn и ObserveOn
  • Async Abstractions using rx-java by Biju Kunjummen, DZone
  • RxJava: Понимание observeOn() и subscribeOn() by Thomas Nield
  • Advanced Reactive Java: SubscribeOn и ObserveOn by Dávid Karnok

Информация, специфичная для языка

RxGroovy subscribeOn unsubscribeOn

subscribeOn

Чтобы указать, на каком Scheduler должен работать Observable, используйте оператор subscribeOn, передав ему соответствующий Scheduler.

  • Javadoc: subscribeOn(Scheduler)

Чтобы указать, какой Scheduler наблюдатели будут использовать для отписки от Observable, используйте оператор unsubscribeOn, передав ему соответствующий Scheduler.

  • Javadoc: unsubscribeOn(Scheduler)

RxJava 1․x subscribeOn unsubscribeOn

subscribeOn

Чтобы указать, на каком Scheduler должен работать Observable, используйте оператор subscribeOn, передав ему соответствующий Scheduler.

  • Javadoc: subscribeOn(Scheduler)

Чтобы указать, какой Scheduler наблюдатели будут использовать для отписки от Observable, используйте оператор unsubscribeOn, передав ему соответствующий Scheduler.

  • Javadoc: unsubscribeOn(Scheduler)

RxJS subscribeOn

subscribeOn

Чтобы указать, на каком Scheduler должен работать Observable, используйте оператор subscribeOn, передав ему соответствующий Scheduler.

Пример кода

/* Change from immediate scheduler to timeout */
var source = Rx.Observable.return(42, Rx.Scheduler.immediate)
    .subscribeOn(Rx.Scheduler.timeout);

var subscription = source.subscribe(
    function (x) { console.log('Next: ' + x); },
    function (err) { console.log('Error: ' + err); },
    function () { console.log('Completed'); });
Next: 42
Completed

subscribeOn представлен в каждом из следующих дистрибутивов:

  • rx.js
  • rx.all.js
  • rx.all.compat.js
  • rx.compat.js
  • rx.lite.js
  • rx.lite.compat.js

© ReactiveX contributors
Licensed under the Apache License 2.0.
http://reactivex.io/documentation/operators/subscribeon.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API