解决方法
当然:
Promise.each = function(arr,fn) { // take an array and a function // invalid input if(!Array.isArray(arr)) return Promise.reject(new Error("Non array passed to each")); // empty case if(arr.length === 0) return Promise.resolve(); return arr.reduce(function(prev,cur) { return prev.then(() => fn(cur)) },Promise.resolve()); }
或者使用现代JS(Chrome或Edge或带有转换器):
Promise.each = async function(arr,fn) { // take an array and a function for(const item of arr) await fn(item); }