Promise是一个异步编程的解决方案。
之前的方案是回调函数的方式。优点是指定回调函数的位置更灵活,和解决了回调地狱问题。
规范是Promise A+。
下面手写实现一遍Promise便于理解。
总体结构
1 | (function (window) { |
执行器的resolve
1 | /** |
执行器的reject,
复制粘贴resolve,改状态、名字即可。
1 | /** |
原型对象上的then 方法
1 | /** |
封装handle
在.then方式中成功和失败的处理很类似,所以封装出来
1 | const handle = callback => { |
优化后的then方法
1 | /** |
原型对象上的catch方法
1 | /** |
函数对象上的resolve和reject方法
1 | /** |
函数对象上的all和race方法
1 | /** |
完整的Promise
1 | (function (window) { |