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

相关文章
|
23天前
|
前端开发 JavaScript API
JavaScript异步编程:从Promise到async/await
JavaScript异步编程:从Promise到async/await
336 204
|
10月前
|
前端开发 JavaScript
用JavaScript 实现一个简单的 Promise 并打印结果
用 JavaScript 实现一个简单的 Promise 并打印结果
|
10月前
|
JSON 前端开发 JavaScript
在 JavaScript 中,如何使用 Promise 处理异步操作?
通过以上方式,可以使用Promise来有效地处理各种异步操作,使异步代码更加清晰、易读和易于维护,避免了回调地狱的问题,提高了代码的质量和可维护性。
|
10月前
|
前端开发 JavaScript Java
一文带你了解和使用js中的Promise
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端2年半,正向全栈进发。如果我的文章对你有帮助,请关注我,将持续更新更多优质内容!🎉🎉🎉
331 0
一文带你了解和使用js中的Promise
|
10月前
|
JSON 前端开发 JavaScript
浅谈JavaScript中的Promise、Async和Await
【10月更文挑战第30天】Promise、Async和Await是JavaScript中强大的异步编程工具,它们各自具有独特的优势和适用场景,开发者可以根据具体的项目需求和代码风格选择合适的方式来处理异步操作,从而编写出更加高效、可读和易于维护的JavaScript代码。
223 1
|
12月前
|
Web App开发 JavaScript 前端开发
JavaScript 类(class)
JavaScript 类(class)
94 2
JavaScript 类(class)
|
11月前
|
前端开发 JavaScript 开发者
JavaScript 中的异步编程:深入了解 Promise 和 async/await
【10月更文挑战第8天】JavaScript 中的异步编程:深入了解 Promise 和 async/await
|
11月前
|
前端开发 JavaScript 小程序
JavaScript的ES6中Promise的使用以及个人理解
JavaScript的ES6中Promise的使用以及个人理解
124 1
|
12月前
|
前端开发 JavaScript
JavaScript中的Promise:简化异步编程
JavaScript中的Promise:简化异步编程