У меня есть функция из библиотеки, которая возвращает обещание. Мне нужно запустить эту функцию несколько раз, но каждая итерация должна дождаться выполнения предыдущей задачи.
Мое предположение заключалось в том, что я мог бы это сделать:
promiseReturner(1)
.then(promiseReturner(2)
.then(promiseReturner(3)
.then(...)
Что можно упростить с помощью цикла:
var p = Promise.resolve();
for (var i=1; i<=10; i++) {
p = p.then(promiseReturner(i));
}
Однако, когда я это делаю, каждое обещание в цепочке выполняется одновременно, а не одно за другим, как это подразумевает .then()
. Ясно, что я пропустил что-то принципиальное в promises - но после прочтения нескольких учебников и сообщений в блогах я все еще теряюсь.
Здесь код, который я написал, чтобы продемонстрировать свою попытку.