英文原文为:https://www.promisejs.org/implementing/ 1. 状态机 因为 promise 对象是一个状态机,所以我们首先应该定义将要用到的状态. var PENDING = 0; var FULFILLED = 1; VAR REJECTED = 2; function Promise () { // 可以存储这些状态,PENDING.FULFILLED 或 REJECTED var state = PENDING; // 当为 FULFILLED 或 RE
用js自己实现一个Promise.all let promiseAll = (promises) => { return new Promise((resolve, reject) => { // 用来存储每个promise的返回值 let values = new Array(promises.length); // 当前已经完成了几个promise let finishCount = 0; for (let i = 0; i < promises.length; ++i) { let