
Для выполнения нескольких асинхронных операций последовательно можно использовать как then, так и async/await.
С использованием then можно выполнить несколько асинхронных операций последовательно, создавая цепочку промисов с помощью метода then. Код будет выглядеть примерно так:
fetch("https://example.com/data1")
.then((response1) => response1.json())
.then((data1) => {
// выполнение операций с data1
return fetch("https://example.com/data2")
})
.then((response2) => response2.json())
.then((data2) => {
// выполнение операций с data2
return fetch("https://example.com/data3")
})
.then((response3) => response3.json())
.then((data3) => {
// выполнение операций с data3
})
.catch((error) => console.error(error))В этом примере мы отправляем три запроса на сервер, используя метод fetch, и последовательно обрабатываем результат каждого запроса с помощью метода then. Если какой-либо запрос завершается с ошибкой, то мы перехватываем исключение с помощью метода catch.
С использованием async/await можно выполнить несколько асинхронных операций последовательно, используя цикл for..of или метод reduce. Код будет выглядеть примерно так:
async function getData() {
try {
const response1 = await fetch("https://example.com/data1")
const data1 = await response1.json()
// выполнение операций с data1
const response2 = await fetch("https://example.com/data2")
const data2 = await response2.json()
// выполнение операций с data2
const response3 = await fetch("https://example.com/data3")
const data3 = await response3.json()
// выполнение операций с data3
return [data1, data2, data3]
} catch (error) {
console.error(error)
return null
}
}В этом примере мы используем async/await для выполнения трех асинхронных операций последовательно. Мы отправляем запросы на сервер с помощью fetch и ожидаем завершения каждой операции с помощью await. Если операция завершается успешно, то мы преобразуем ответ в формат json и выполняем необходимые операции с данными. Если операция завершается с ошибкой, то мы перехватываем исключение с помощью catch, выводим сообщение об ошибке в консоль и возвращаем null. В конце функции мы возвращаем массив, содержащий результаты выполнения всех трех запросов.
Таким образом, для выполнения нескольких асинхронных операций последовательно можно использовать как then, так и async/await.