进来看看ES6 Promise最全手写实现
写在开头 这几天看到有些技术群在发 Promise 相关的一些实现,自己最近也在看 ES6 的一些内容,于是打算自己也整理一下,提升一下理解; 本文适合一些了解并使用过 Promise 的人,如果你没有了解或使用过 Promise ,建议先看一下 阮一峰 ECMAScript6 入门 之Promise 。 什么是 Promise 异步编程的一种解决方案; Promise 是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果; 特点 对象的状态不受外界影响。 Promise 对象代表一个异步操作,有三种状态: pending (进行中)、 fulfilled (已成功)和 rejected (已失败)。 一旦状态改变,就不会再变,任何时候都可以得到这个结果。 Promise 对象的状态改变,只有两种可能:从 pending 变为 fulfilled 和从 pending 变为 rejected 。 简单实现 流程分析 图片来源 MDN 初始化一个 Promise 原始的 Promise // Promise构造函数接收一个executor函数,executor函数执行完同步或异步操作后,调用它的两个参数resolve和reject const promise = new Promise( function (resolve, reject) { /* 如果操作成功