class MyPromise {
  constructor(executor) {
    this.executor = executor;
    this.resolve = this.resolve.bind(this);
    this.executor(this.resolve);
    process.nextTick(() => {
      this.callback(this.result);
    });
  }
  then(callback) {
    this.callback = callback;
  }
  resolve(result) {
    this.result = result;
  }
}
function foo() {
  new MyPromise((resolve) => resolve("done")).then((res) =>
    console.log(`Returned ${res}`)
  );
}
foo();
My Promise
 · One min read
