写点什么

前端面试题 - 如何实现 promise?

作者:Geek_fed966
  • 2024-05-01
    河北
  • 本文字数:594 字

    阅读完需:约 2 分钟

前端面试题 - 如何实现 promise?

  • 通过构造函数生成一个 promise 对象,该构造函数有一个延时函数参数

  • 通过 promise.then()或 promise.catch()方法实现结果获取

  • then 函数和 catch 函数可以链式调用


function MyPromise(func) {    this.status = 'pending';    this.res = '';    this.thenCbs = [];    this.catchCbs = [];    const resolve = (data) => {        this.status = 'fulfilled';        this.res = data;        this.thenCbs.forEach(cb => {            cb(this.res);        });    }    const reject = (data) => {        this.status = 'rejected';        this.res = data;        this.catchCbs.forEach(cb => {            cb(this.res);        });    }    this.then = function (cb) {        if (this.status == 'pending') {            this.thenCbs.push(cb);        }        if (this.status == 'fulfilled') {            var res = cb(this.res)        }        return this;    }    this.catch = function (cb) {        if (this.status == 'pending') {            this.catchCbs.push(cb)        }        if (this.status == 'rejected') {            var res = cb(this.res)        }        return this;    }    func(resolve, reject)}
复制代码


通俗易懂的前端面试题网站: https://www.front-interview.com


用户头像

Geek_fed966

关注

还未添加个人签名 2023-10-07 加入

还未添加个人简介

评论

发布
暂无评论
前端面试题 - 如何实现promise?_Geek_fed966_InfoQ写作社区