Сообщение от DarkPhoenix
|
P.S. нельзя юзать promise.all
|
А зря вы так себя ограничили! Было бы так...
function request(url) {
return new Promise((res,rej) => {
const delayTime = Math.floor(Math.random() * 10000) + 1;
setTimeout(() => (console.log(url), res(url)), delayTime);
});
}
function willGetUrls(urls) {
return Promise.all(urls.map(request));
}
var urls = ["simon", "david", "chak", "richard"];
willGetUrls(urls).then(console.log);
Но и без статичного метода
Promise.all тоже можно попробовать...
function request(url) {
return new Promise((res,rej) => {
const delayTime = Math.floor(Math.random() * 10000) + 1;
setTimeout(() => (console.log(url), res(url)), delayTime);
});
}
function willGetUrls(urls) {
return new Promise(resolve => {
urls.map(request).reduce(async (resultP, promise, index, promises) => {
let { result = [], count = 0 } = await resultP;
result[index] = await promise;
if(promises.length === ++count) resolve(result);
return { result, count };
}, {});
});
}
var urls = ["simon", "david", "chak", "richard"];
willGetUrls(urls).then(console.log);