Using
运算符是一种指示可观察对象创建仅在可观察对象生命周期内存在的资源并在此生命周期结束时处置资源的方法。
待定
待定
您将三个参数传递给 using
运算符
当观察者订阅从 using
返回的可观察对象时,using
将使用可观察对象工厂函数来创建观察者将观察的可观察对象,同时使用资源工厂函数来创建您已设计其创建的任何资源。当观察者取消订阅可观察对象时,或者当可观察对象终止(正常或发生错误时),using
将调用第三个函数以处置它创建的资源。
using
默认情况下不会对任何特定的 调度程序 进行操作。
using(Func0,Func1,Action1)
您将三个参数传递给 using
运算符
当观察者订阅从 using
返回的可观察对象时,using
将使用可观察对象工厂函数来创建观察者将观察的可观察对象,同时使用资源工厂函数来创建您已设计其创建的任何资源。当观察者取消订阅可观察对象时,或者当可观察对象终止(正常或发生错误时),using
将调用第三个函数以处置它创建的资源。
using
默认情况下不会对任何特定的 调度程序 进行操作。
using(Func0,Func1,Action1)
您将两个参数传递给 using
运算符
当观察者订阅从 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
待定
待定
待定