例外処理等はなく、とにかくthenableにすることだけに特化したPromiseのサブセットです。あまり実用的な意味はありませんが、Promiseの内部の実装を理解する上で参考になればと思います。
const Promise = window.Promise || function Promise(executor) {
const callbacks = [];
let isResolved = false;
let resolvedValue = null;
const resolved = (value) => {
isResolved = true;
resolvedValue = value;
callbacks.forEach(callback => callback(resolvedValue))
}
const rejected = (err) => {
callbacks.splice(0);
console.error(err);
}
executor(resolved, rejected);
this.then = (callback) => {
if (isResolved) {
callback(value);
} else {
callbacks.push(callback);
}
};
}