Promise A+ 规范

Posted yingmhd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
    }

以上是关于Promise A+ 规范的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象

手写 Promise

Promise A 规范的一个简单的浏览器端实现

Promise A+ 规范

手把手带你实现符合Promise/A+规范的Promise