听名字莫名其妙,完全没听说过,但是面试官就非要问。
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)
    }

yingmhd
67 声望4 粉丝

路漫漫其修远兮,吾将上下而求索


« 上一篇
webpack
下一篇 »
vue点击空白处

引用和评论

0 条评论