美文网首页
JS中Promise的类式实现写法

JS中Promise的类式实现写法

作者: 硅谷干货 | 来源:发表于2024-03-09 17:30 被阅读0次

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

相关文章

  • OC如何实现Promise

    JS中Promise和Ramda中的curry化函数,真的很好用。我就在想: 如何在OC中实现Promise 如何...

  • 手写Promise

    基本实现new Promise 和 then /catch方法 Promise.js test.js测试 调用手...

  • 一份头条前端面试准备[整理稿]

    JS打乱数组 JS ajax JS bind 实现 懒加载 JS实现promise JS发布订阅模式 JSONP ...

  • 【Javascript】this

    this的含义 this 本身原本很简单,总是指向类的当前实例。因此编写的 JS 采用函数式写法,而不是面向对象式...

  • 认真的类

    没有ES6之前,我觉得JS这门语言类的写法非常的难受,我都觉得JS中只有一组变量,是没有类的。类的写法,我这个写多...

  • 简单认识promise

    //promise写法 -->itemTypeList中的删除类型

  • JS_Promise底层原理封装

    JS_Promise底层原理封装 封装的难点在于如何让promise中的.then()变成一个微任务 ? 如何实现...

  • export的各种写法

    page.js 调用文件 exportTestUtils.js 工具类文件 写法0 结果 写法1 结果 写法2 结...

  • 2-useState

    Time: 20200126 函数组件中使用状态。 类组件写法 注意类组件的用法。 函数式组件写法 在事件调用中,...

  • 2018-10-11 promise与callback并行执行之

    Promise写法对应的callback写法中的 async.mapSeries 注: const async =...

网友评论

      本文标题:JS中Promise的类式实现写法

      本文链接:https://www.haomeiwen.com/subject/ifluzdtx.html