Represents a value that changes over time. Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications.
This class inherits both from the Rx.Observable
and Rx.Observer
classes.
The follow example shows the basic usage of an Rx.BehaviorSubject
class.
/* Initialize with initial value of 42 */
var subject = new Rx.BehaviorSubject(42);
var subscription = subject.subscribe(
function (x) {
console.log('Next: ' + x.toString());
},
function (err) {
console.log('Error: ' + err);
},
function () {
console.log('Completed');
});
// => Next: 42
subject.onNext(56);
// => Next: 56
subject.onCompleted();
// => Completed
- rx.binding.js
dispose
- [
getValue
] (#rxbehaviorsubjectprototypegetvalue) hasObservers
Initializes a new instance of the Rx.BehaviorSubject
class which creates a subject that caches its last value and starts with the specified value.
initialValue
(Any): Initial value sent to observers when no other value has been received by the subject yet.
var subject = new Rx.BehaviorSubject(56);
subject.onCompleted();
var subscription = source.subscribe(
function (x) {
console.log('Next: ' + x);
},
function (err) {
console.log('Error: ' + err);
},
function () {
console.log('Completed');
});
// => Next: 56
subject.onNext(42);
// => Next: 42
subject.onCompleted();
// => Completed
= rx.binding.js
Unsubscribe all observers and release resources.
var subject = new Rx.BehaviorSubject();
var subscription = subject.subscribe(
function (x) {
console.log('Next: ' + x.toString());
},
function (err) {
console.log('Error: ' + err);
},
function () {
console.log('Completed');
});
subject.onNext(42);
// => Next: 42
subject.onCompleted();
// => Completed
subject.dispose();
try {
subject.onNext(56);
} catch (e) {
console.log(e.message);
}
// => Object has been disposed
= rx.binding.js
Gets the current value or throws an exception.
Value is frozen after onCompleted
is called.
After onError
is called always throws the specified exception.
An exception is always thrown after dispose
is called.
(Mixed): The initial value
passed to the constructor until onNext
is called; after which, the last value passed to onNext
.
var subject = new Rx.BehaviorSubject(56);
console.log('Value is: ' + subject.getValue());
// => Value is: 56
subject.onNext(42);
console.log('Value is: ' + subject.getValue());
// => Value is: 42
subject.onCompleted();
subject.onNext(100);
console.log('Value is frozen: ' + subject.getValue());
// => Value is frozen: 42
subject.dispose();
try {
subject.getValue();
} catch (e) {
console.log(e.message);
}
// => Object has been disposed
= rx.binding.js
Indicates whether the subject has observers subscribed to it.
(Boolean): Returns true
if the Subject has observers, else false
.
var subject = new Rx.BehaviorSubject();
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
= rx.binding.js