Показать сообщение отдельно
  #7 (permalink)  
Старый 30.05.2019, 11:48
Аспирант
Отправить личное сообщение для DarkPhoenix Посмотреть профиль Найти все сообщения от DarkPhoenix
 
Регистрация: 11.05.2019
Сообщений: 30

Сообщение от рони Посмотреть сообщение
DarkPhoenix,

function request(url) {
    return new Promise((res, rej) => {
        const delayTime = Math.floor(Math.random() * 10000) + 1;

        setTimeout(() => res(url), delayTime);
    });
}
function willGetUrls(urls) {
    if (!urls || !urls.length) { return Promise.resolve([]); }
    return new Promise(function(resolve, reject) {
        var count = urls.length;
        var res = [];
        urls.forEach(function(url, idx) {
            request(url).then(function(v) {
                res[idx] = v;
                if (--count < 1) { resolve(res); console.log(res)}
            });
        });
    });
}
var urls = [
    'simon',
    'david',
    'chak',
    'richard'
    ];
willGetUrls(urls)
if (!urls || !urls.length) { return Promise.resolve([]); } - Если есть значения и они не пусты, возвращаем массив?
var count = urls.length; - счетчик тут понятно
var res = []; - в res передаем все значения массива


urls.forEach(function(url, idx) {
request(url).then(function(v) {
res[idx] = v;
Этот момент не совсем понятен. Можно для чайников подробности?
idx это индекс?
Для каждого urls делаем request и в res[idx] делаем что?
Ответить с цитированием