美文网首页海纳百川
手写Promise(简单)

手写Promise(简单)

作者: 凛冬已至_123 | 来源:发表于2020-09-21 22:50 被阅读0次
  • Promise
class Promise2 {
  succeed = null
  fail = null
  state = 'pending' 

  constructor(fn) {
    fn(this.resolve.bind(this), this.reject.bind(this))
  }
  
  resolve(result) {
    setTimeout(() => {
      this.state = 'fulfilled' 
      this.succeed(result)
    })
  }

  reject(reason) {
    setTimeout(() => {
      this.state = 'rejected' 
      this.fail(reason)
    })
  }

  then(succeed, fail) {
    this.succeed = succeed
    this.fail = fail
  }
}
  • Promise.all
Promise2.all = function(arrP) {
  let list = []
  return new Promise2((resolve, reject) => {
    for(let i = 0; i < arrP.length; i++) {
      arrP[i].then( data=> {
        list[i] = data
        
        list.length === arrP.length && resolve(list)
      }, error => {
        !hasErr && reject(error)
        hasErr = true
      })
    }
  })
}
  • Promise.race
Promise2.rac=function(arrP){
  let hasVal = false
  let hasError = false
  return new Promise2((resolve, reject) => {
    for(let i = 0; i < arrP.length; i++) {
      arrP[i].then( data=> {
        !hasVal&&!hasError&& resolve(list)
        hasVal = true
      }, error => {
        !hasVal&&!hasError&& resolve(list)&& reject(error)
        hasError = true
      })
    }
  })
}

相关文章

  • 手写promise

    手写promise 带大家手写一个 promis。在手写之前我会先简单介绍一下为什么要使用promise、prom...

  • 手写Promise(简单)

    Promise Promise.all Promise.race

  • 手写Promise

    手写 Promise 我们会通过手写一个符合 Promise/A+ 规范的 Promise 来深入理解它,并且手写...

  • 手写 Promise 简单梳理

    推荐文章[https://juejin.im/post/6850037281206566919#heading-3...

  • 手写极简版promise

    为了更更加好的理解promise ,简单的学习了一下手写promise。于是我就简单的学了一下 ,首先分步操作,先...

  • 手写 Promise 系列 --- 3

    在前两篇(手写 Promise 系列 --- 1)和(手写 Promise 系列 ---2) 中,达成了3个目标 ...

  • 手写Promise

    $ 正常的promise用法   $ 手写的Promise   # 测试可行性

  • 纯手写实现自己的nodejs promise 库

    纯手写实现自己的nodejs promise 库什么是Promise?promise 链Async/Await后续...

  • 手写promise

    面试的笔试题中遇到过手写promise的题目,以下是参考了网上的文章,自己整理的一个简单的promise函数:

  • 手写基础 promise

    1. 前言 玩下吧 手写 promise,看看能写成啥样 2. promise 基础结构 3. 手写`promi...

网友评论

    本文标题:手写Promise(简单)

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