知其然也要知其所以然。查了些资料,照着实现了下Promise的原理。
Promise简单总结
Promise 对象用于异步计算。一个 Promise 表示一个现在或将来可用,亦或永远不可用的值。
Promise对象是一个代理对象,它允许你为异步代码执行结果的成功和失败各绑定一个函数,让异步方法可以像同步方法那样返回值。
主要原理:状态机+异步队列。 异步操作完成后,调用内部的resolve、reject函数改变状态,同时执行异步队列中的函数。异步队列中的函数是在调用then、done的时候加入的队列。
代码实现
|
|