美文网首页
基本的Promise实现1

基本的Promise实现1

作者: Phoenixing | 来源:发表于2021-06-07 23:57 被阅读0次

实现

const PENDING = 'pending'
const FULFILLED = 'fulfilled'
const REJECTED = 'rejected'

class MyPromise {
  constructor(executor) {
    executor(this.resolve, this.reject)
  }

  status = PENDING
  value = undefined
  reason = undefined

  resolve = value => {
    if (this.status !== PENDING) return
    this.status = FULFILLED
    this.value = value
  }

  reject = reason => {
    if (this.status !== PENDING) return
    this.status = REJECTED
    this.reason = reason
  }
  
  then(successCallback, failCallback) {
    if (this.status === FULFILLED) {
      successCallback(this.value)
    } else if (this.status === REJECTED) {
      failCallback(this.reason)
    }
  }
}

module.exports = MyPromise

测试

const MyPromise = require('./03-my-promise')

const promise = new MyPromise((resolve, reject) => {
  resolve('成功!')
  // reject('失败!')
})

promise.then(value => {
  console.log(value)
}, reason => {
  console.log(reason)
})

相关文章

  • 基本的Promise实现1

    实现 测试

  • Promise的基本实现

    个人理解: Promise对象接受一个函数作为参数,此函数有两个参数,resolve传入value执行成功回调,r...

  • 手写Promise的实现和心得

    实现的逻辑和说明 上述代码基本上实现了所有的Promise/A+规范,实现了promise的静态resolve和r...

  • 手写Promise

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

  • 实现一个promise

    先看一下promise的基本用法 初步实现 由此可以看出1、promise函数接受一个参数executor,函数e...

  • 实现 Promise

    实现 Promise 此代码基本源于大佬在掘金上发的文章Promise实现原理(附源码), 此文写得相当详细, 非...

  • 模拟实现 Promise(小白版)

    模拟实现 Promise(小白版) 本篇来讲讲如何模拟实现一个 Promise 的基本功能,网上这类文章已经很多,...

  • 完全理解 Promise 实现

    完全理解 Promise 基本实现 网上有很多 Promise 实现方式,看了都不是特别理解。这里以一种更简单的形...

  • promise实现

    在模拟实现promise之前,先要熟悉了解promise的基本功能和语法。首先promise传入的参数是一个立即执...

  • Promise基础

    Promise Promise对象的三种状态 Promise状态的改变形式 Promise基本的api eg.1 ...

网友评论

      本文标题:基本的Promise实现1

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