falcor
Version:
A JavaScript library for efficient data fetching.
39 lines (31 loc) • 952 B
JavaScript
/**
* Will allow for state tracking of the current disposable. Also fulfills the
* disposable interface.
* @private
*/
var AssignableDisposable = function AssignableDisposable(disosableCallback) {
this.disposed = false;
this.currentDisposable = disosableCallback;
};
AssignableDisposable.prototype = {
/**
* Disposes of the current disposable. This would be the getRequestCycle
* disposable.
*/
dispose: function dispose() {
if (this.disposed || !this.currentDisposable) {
return;
}
this.disposed = true;
// If the current disposable fulfills the disposable interface or just
// a disposable function.
var currentDisposable = this.currentDisposable;
if (currentDisposable.dispose) {
currentDisposable.dispose();
}
else {
currentDisposable();
}
}
};
module.exports = AssignableDisposable;