乐趣区

关于promise:Promise-A-规范

听名字莫名其妙,齐全没听说过,然而面试官就非要问。
Promise标准很多,有 A/B/D/A+, 然而ES6 用的是A+

标准解读

  1. 一个 promise 的以后状态只能是 pendingfullfilledrejected三种,状态扭转之恩那个是 pending->fullfilledpending->rejected,状态扭转不可逆
  2. Promisethen 办法承受两个参数,示意 promise 状态产生扭转时的回调 (onFullfilled,onRejected),then 办法返回一个 promisethen 能够被一个 promise 屡次调用
    标准解读结束 …

    Promise 原理

    雏形

    function Promise(fn) {
        let value = null,
            callbacks = [] // 观察者模式,注册事件
        this.then = function(onFullfilled) {callbacks.push(onFullfilled)
        }
        function resolve(value) {callbacks.forEach(function(callback){callback(value)
            })
        }
        fn(reslove)
    }
退出移动版