Rx.AsyncSubject
class
Represents the result of an asynchronous operation. The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers.
This class inherits both from the Rx.Observable
and Rx.Observer
classes.
Usage
The follow example shows caching on the last value produced when followed by an onCompleted notification which makes it available to all subscribers.
var subject = new Rx.AsyncSubject();
var i = 0;
var handle = setInterval(function () {
subject.onNext(i)
if (++i > 3) {
subject.onCompleted();
clearInterval(handle);
}
}, 500);
var subscription = subject.subscribe(
function (x) {
console.log('Next: ' + x.toString());
},
function (err) {
console.log('Error: ' + err);
},
function () {
console.log('Completed');
});
// => Next: 3
// => Completed
Location
- rx.js
AsyncSubject Constructor
AsyncSubject Instance Methods
Inherited Classes
AsyncSubject Constructor
Rx.AsyncSubject()
Creates a subject that can only receive one value and that value is cached for all future observations.
例
var subject = new Rx.AsyncSubject();
subject.onNext(42);
subject.onCompleted();
var subscription = subject.subscribe(
function (x) {
console.log('Next: ' + x);
},
function (err) {
console.log('Error: ' + err);
},
function () {
console.log('Completed');
});
// => 42
// => Completed
Location
- rx.js
AsyncSubject Instance Methods
Rx.AsyncSubject.prototype.dispose()
Unsubscribe all observers and release resources.
例
var subject = new Rx.AsyncSubject();
var subscription = subject.subscribe(
function (x) {
console.log('Next: ' + x.toString());
},
function (err) {
console.log('Error: ' + err);
},
function () {
console.log('Completed');
});
subject.onNext(42);
subject.onCompleted();
// => Next: 42
// => Completed
subject.dispose();
try {
subject.onNext(56);
} catch (e) {
console.log(e.message);
}
// => Object has been disposed
Location
- rx.js
Rx.AsyncSubject.prototype.hasObservers()
Indicates whether the subject has observers subscribed to it.
返回值
(Boolean): Returns true
if the AsyncSubject has observers, else false
.
例
var subject = new Rx.AsyncSubject();
console.log(subject.hasObservers());
// => false
var subscription = subject.subscribe(
function (x) {
console.log('Next: ' + x.toString());
},
function (err) {
console.log('Error: ' + err);
},
function () {
console.log('Completed');
});
console.log(subject.hasObservers());
// => true
Location
- rx.js