эта строчка chain = chain? При первой итерации понятно зачем. Создоает новый промис уже успешно завершенный. А че с ней происходит на второй итерации(я про chain)? И изменяется ли глобальная переменная chain в ходе цикла? Или я надумал фигни и она нужна тупо для того чтобы каждый раз создавать новый промис?
// начало цепочки
let chain = Promise.resolve();
let results = [];
// в цикле добавляем задачи в цепочку
urls.forEach(function(url) {
chain = chain
.then(() => httpGet(url))
.then((result) => {
results.push(result);
});
});
// в конце — выводим результаты
chain.then(() => {
alert(results);
});
прочитай про асинхронные операции в js
Обсуждают сегодня