@danielkalen/simplybind
Version:
Magically simple, framework-less one-way/two-way data binding for frontend/backend in ~5kb.
29 lines (25 loc) • 550 B
JavaScript
function SimplePromise () {
this.listeners = [];
}
SimplePromise.prototype.fulfill = function (value) {
if (!this.isFulfilled) {
this.isFulfilled = true;
this.value = value;
this.listeners.forEach(function (listener) {
listener();
});
}
};
SimplePromise.prototype.then = function (success) {
if (this.isFulfilled) {
var self = this;
setTimeout(function () {
success(self.value);
});
} else {
this.listeners.push(success);
}
};
module.exports = function () {
return new SimplePromise();
};