听名字莫名其妙,完全没听说过,但是面试官就非要问。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) }
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。