你的这个promise.all感觉没问题啊 Promise.prototype.myAll = function (arr) { const results = []; return new Promise(function (resolve, reject) { for (const p of arr) { Promise.resolve(p).then(function (val) { results[i] = val; if (results.length === arr.length) { return resolve(results); } }, function (err) { return reject(err); }); } }); };