var p1 = new Promise((resolve) =>
setTimeout(() => {
resolve(1);
}, 0)
);
var p2 = new Promise((resolve) =>
setTimeout(() => {
resolve(2);
}, 30)
);
var p3 = new Promise((resolve) =>
setTimeout(() => {
resolve(3);
}, 10)
);
function generatePromiseAll(promises) {
if (promises && Array.isArray(promises) && promises.length) {
return new Promise((resolve, reject) => {
const result = [];
let counter = 0;
promises.forEach((v, index) => {
Promise.resolve(v).then(
(data) => {
result[index] = data;
counter++;
if (counter === promises.length) {
resolve(result);
}
},
(error) => {
reject(error);
}
);
});
});
}
}
generatePromiseAll([p1, p2, 5, p3]).then((v) => console.log(v));
// Promise.all([p1, p2, p3]).then((v) => console.log(v));
网友评论