Мне нужно написать Javascript (версия ES6) для выполнения следующей задачи:
- строка "item1, item2, item3, item4, item5",
- fetch () URL, использующий эту строку.
- если флаг ответа успешен, готово и выход.
- если флаг ответа не пройден, отбросьте последний элемент (item5), чтобы теперь строка представляла собой «item1, item2, item3, item4», и повторите шаг 2.
- если предмет больше не будет отброшен, выйдите.
Общее количество предметов является переменным. Поэтому я планирую выполнить эту задачу с помощью do-loop, используя следующую структуру:
//suppose str = 'item1,item2,item3,....itemN'
do {
fetch(url, {param1: str}).then(response => {
//check the response flag, if success, done and exit.
//if not success, drop one item and re-do fetch
})
}
Проблема в том, что выборка является асинхронным вызовом, поэтому я не могу принудительно заставить каждую выборку, выполненную в последовательности.
Мне нужно убедиться, что новый fetch () выполняется только тогда, когда предыдущий fetch () завершился неудачей. Есть идеи?