import MutablePromise from "js/MutablePromise.js";
export default class ImmediatePromise extends MutablePromise {
// Public
then(onResolved, onRejected, ...args) {
switch (this.status) {
case MutablePromise.Status.Resolved:
return onResolved(...this.result);
case MutablePromise.Status.Rejected:
return onRejected(...this.result);
}
return super.then(onResolved, onRejected, ...args);
}
catch(onRejected, ...args) {
switch (this.status) {
case MutablePromise.Status.Rejected:
return onRejected(...this.result);
}
return super.catch(onRejected, ...args);
}
finally(onFinally, ...args) {
switch (this.status) {
case MutablePromise.Status.Resolved:
case MutablePromise.Status.Rejected:
return onFinally();
}
return super.finally(onFinally, ...args);
}
}