首页 > 其他 > 详细

手写promise的then方法

时间:2021-06-02 21:31:17      阅读:18      评论:0      收藏:0      [点我收藏+]
// 原生实现promise基本功能,实现依次调用,eg:a().then()
//不用考虑实现race all finally的复杂功能
function Promise(fn) {
  if (typeof fn !== ‘function‘) {
    throw new Error(‘Resolver is not a Function‘)
  } else {
    this.callbacks = [];
    const resolve = val => {
      setTimeout(() => {
        this.callbacks.forEach(cb => {
          cb(val)
        });
      }, 0)
    };
    fn(resolve);
  }
}
Promise.prototype.then = function (newCallBack) {
  this.callbacks.push(newCallBack);
};
const a = new Promise(function (resolve) {
  setTimeout(() => {
    resolve(‘执行函数参数‘)
  }, 2000)
})
a.then(function (val) {
  console.log(val);
});

  

手写promise的then方法

原文:https://www.cnblogs.com/xiaoyaoweb/p/14842524.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!