Spec-Zone.ru › ReactiveX

Использование

создайте ресурс с ограниченным сроком действия, имеющий тот же срок жизни, что и Observable
Using

Оператор Using — это способ указать Observable на создание ресурса, существующего только в течение срока жизни Observable, и который удаляется при завершении Observable.

См. также

  • Введение в Rx: Использование

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

RxGroovy using

using

Вы передаёте оператору using три параметра:

  1. функцию-фабрику, которая создаёт ресурс с ограниченным сроком действия
  2. функцию-фабрику, которая создаёт Observable
  3. функцию, которая освобождает ресурс

Когда подписчик подписывается на Observable, возвращаемое оператором using, using использует функцию-фабрику Observable для создания Observable, за которым будет наблюдать подписчик, а также использует функцию-фабрику ресурса для создания необходимого ресурса. Когда подписчик отписывается от Observable или когда Observable завершается (нормально или с ошибкой), using вызовет третью функцию для освобождения созданного ресурса.

using по умолчанию не работает с каким-либо конкретным расписанием.

  • Javadoc: using(Func0,Func1,Action1)

RxJava 1․x using

using

Вы передаёте оператору using три параметра:

  1. функцию-фабрику, которая создаёт ресурс с ограниченным сроком действия
  2. функцию-фабрику, которая создаёт Observable
  3. функцию, которая освобождает ресурс

Когда подписчик подписывается на Observable, возвращаемое оператором using, using использует функцию-фабрику Observable для создания Observable, за которым будет наблюдать подписчик, а также использует функцию-фабрику ресурса для создания необходимого ресурса. Когда подписчик отписывается от Observable или когда Observable завершается (нормально или с ошибкой), using вызовет третью функцию для освобождения созданного ресурса.

using по умолчанию не работает с каким-либо конкретным расписанием.

  • Javadoc: using(Func0,Func1,Action1)

RxJS using

using

Вы передаёте оператору using два параметра:

  1. функцию-фабрику, которая создаёт ресурс с ограниченным сроком действия
  2. функцию-фабрику, которая создаёт Observable

Когда подписчик подписывается на Observable, возвращаемое оператором using, using использует функцию-фабрику Observable для создания Observable, за которым будет наблюдать подписчик, а также использует функцию-фабрику ресурса для создания необходимого ресурса. Для освобождения ресурса вызовите метод dispose подписки, возвращённой из вызова subscribe, который вы использовали для подписки наблюдателя к Observable, который вы изменили с помощью using.

Пример кода

/* Using an AsyncSubject as a resource which supports the .dispose method */
function DisposableResource(value) {
  this.value = value;
  this.disposed = false;
}

DisposableResource.prototype.getValue = function () {
  if (this.disposed) {
    throw new Error('Object is disposed');
  }
  return this.value;
};

DisposableResource.prototype.dispose = function () {
  if (!this.disposed) {
    this.disposed = true;
    this.value = null;
  }
  console.log('Disposed');
};

var source = Rx.Observable.using(
  function () { return new DisposableResource(42); },
  function (resource) {
    var subject = new Rx.AsyncSubject();
    subject.onNext(resource.getValue());
    subject.onCompleted();
    return subject;
  }
);

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

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

  • rx.js
  • rx.compat.js

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

Spec-Zone.ru

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