JS中Promise的类式实现写法

简介: JS中Promise的类式实现写法

类式定义方式

class MyPromise {
   
   
  constructor(executor) {
   
   
    this.status = "pending";
    this.value = undefined;
    this.reason = undefined;

    let resolveFn = (value) => {
   
   
      if (this.status === "pending") {
   
   
        this.status = "resolve";
        this.value = value;
      }
    };

    let rejectFn = (reason) => {
   
   
      if (this.status === "pending") {
   
   
        this.status = "reject";
        this.reason = reason;
      }
    };

    try {
   
   
      executor(resolveFn, rejectFn);
    } catch (error) {
   
   
      rejectFn(error);
    }
  }

  then(onFulfilled, onRejected) {
   
   
    if (this.status === "resolve") {
   
   
      onFulfilled(this.value);
    }
    if (this.status === "reject") {
   
   
      onRejected(this.reason);
    }
  }
}

测试和打印

new MyPromise((resolve, reject) => {
   
   
  resolve("123");
}).then((res) => {
   
   
  console.log(res);
});

输出如下:
image.png

相关文章
|
16天前
|
Web App开发 JavaScript 前端开发
JavaScript 类(class)
JavaScript 类(class)
18 2
JavaScript 类(class)
|
13天前
|
前端开发 JavaScript
JavaScript中的Promise:简化异步编程
JavaScript中的Promise:简化异步编程
|
15天前
|
Web App开发 前端开发 JavaScript
js之 Promise | 12-8
js之 Promise | 12-8
|
14天前
|
JavaScript 前端开发 Java
JavaScript 类知识点概览
概览JavaScript中类的知识点,包括类的定义和实现、添加方法和get/set方法、类的继承和静态方法的使用。通过学生类和人员类的例子,演示了类的构造器、方法定义、继承关系和静态方法的调用。
JavaScript 类知识点概览
|
15天前
|
JavaScript 前端开发 开发者
JavaScript 类继承
JavaScript 类继承
15 1
|
17天前
|
前端开发 JavaScript
ES6新标准下JS异步编程Promise解读
ES6新标准下JS异步编程Promise解读
23 3
|
17天前
|
JavaScript 安全
ES6中JS类实现的解读
ES6中JS类实现的解读
17 2
|
18天前
|
前端开发 JavaScript
JavaScript Promise-2
JavaScript Promise-2
16 3
|
18天前
|
Web App开发 前端开发 JavaScript
JavaScript Promise-1
JavaScript Promise
15 3
|
1月前
|
JavaScript 前端开发
JavaScript基础知识-构造函数(也称为"类")定义
本文介绍了JavaScript中构造函数(也称为“类”)的定义和使用方法。
28 1
JavaScript基础知识-构造函数(也称为"类")定义