使用

创建一个与可观察对象生命周期相同的可丢弃资源

Using

Using 运算符是一种指示可观察对象创建仅在可观察对象生命周期内存在的资源并在此生命周期结束时处置资源的方法。

另请参见

特定于语言的信息

待定

待定

using

您将三个参数传递给 using 运算符

  1. 一个创建可丢弃资源的工厂函数
  2. 一个创建可观察对象的工厂函数
  3. 一个用于处置资源的函数

当观察者订阅从 using 返回的可观察对象时,using 将使用可观察对象工厂函数来创建观察者将观察的可观察对象,同时使用资源工厂函数来创建您已设计其创建的任何资源。当观察者取消订阅可观察对象时,或者当可观察对象终止(正常或发生错误时),using 将调用第三个函数以处置它创建的资源。

using 默认情况下不会对任何特定的 调度程序 进行操作。

using

您将三个参数传递给 using 运算符

  1. 一个创建可丢弃资源的工厂函数
  2. 一个创建可观察对象的工厂函数
  3. 一个用于处置资源的函数

当观察者订阅从 using 返回的可观察对象时,using 将使用可观察对象工厂函数来创建观察者将观察的可观察对象,同时使用资源工厂函数来创建您已设计其创建的任何资源。当观察者取消订阅可观察对象时,或者当可观察对象终止(正常或发生错误时),using 将调用第三个函数以处置它创建的资源。

using 默认情况下不会对任何特定的 调度程序 进行操作。

using

您将两个参数传递给 using 运算符

  1. 一个创建可丢弃资源的工厂函数
  2. 一个创建可观察对象的工厂函数

当观察者订阅从 using 返回的可观察对象时,using 将使用可观察对象工厂函数来创建观察者将观察的可观察对象,同时使用资源工厂函数来创建您已设计其创建的任何资源。要处置资源,请调用从您用来订阅观察者到您使用 using 修改的可观察对象的 subscribe 调用返回的订阅的 dispose 方法。

示例代码

/* 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

待定

待定

待定

待定

待定