听名字莫名其妙,齐全没听说过,然而面试官就非要问。Promise
标准很多,有 A/B/D/A+
, 然而ES6
用的是A+
标准解读
- 一个 promise 的以后状态只能是
pending
、fullfilled
和rejected
三种,状态扭转之恩那个是pending->fullfilled
或pending->rejected
,状态扭转不可逆 -
Promise
的then
办法承受两个参数,示意promise
状态产生扭转时的回调(onFullfilled,onRejected)
,then
办法返回一个promise
,then
能够被一个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) }