Темы для обсуждения:
Как последовательно получать несколько асинхронных данных с помощью async/await (т.е. один за другим)
Как получить несколько асинхронных данных параллельно (т. е. все API запускаются в одном экземпляре)
Как обрабатывать отказы обещаний с помощью async/await.
перед изложением вышеприведенных концепций давайте сначала разберемся, как асинхронность работает с функцией.
Функция, состоящая из ключевого слова «async», возвращает обещание. Позже обещание может быть разрешено с помощью ‘.then’.
Чтобы отклонить, мы используем ключевое слово «throw». Следовательно, мы наблюдаем, что статус обещания, возвращаемый при вызове функции, «отклонен».
Как обрабатывать отказы обещаний с помощью async/await.
Как только обещание отклонено, их следует обработать. Отказы обрабатываются с помощью «попробуй и поймай». Добавьте асинхронную логику в блок try и логику для обработки и отображения соответствующей ошибки в блоке catch.
Как последовательно получать несколько асинхронных данных с помощью async/await (т.е. один за другим)
Если мы хотим получить список видов из звездных войн API: https://swapi.co/api/people/1», а затем из ответа сделать вызов API для получения средней продолжительности жизни первого вида, которую мы должны сделать последовательные вызовы, как показано ниже (с использованием асинхронного ожидания).
Ниже представлена картинка, изображающая водопад сетевых вызовов.
Как получить несколько асинхронных данных параллельно (т. е. все API запускаются в одном экземпляре)
В некоторых сценариях серии API, которые нужно получить, не зависят друг от друга. Мы можем запускать асинхронные вызовы в том же экземпляре. то есть параллельно.
Чтобы сделать несколько вызовов API параллельно с помощью асинхронного ожидания, извлеките данные по отдельности, а затем используйте «ожидание», как показано ниже:
Используя описанное выше поведение, вызовы API запускаются параллельно. Ниже приведена схема вызова сетевого API, которая это подтверждает.
Есть и другой способ, с помощью которого вызовы API асинхронной выборки могут запускаться параллельно. то есть с помощью Promise.all()
Ниже приведена диаграмма водопада сети для получения нескольких API, таких как люди/1, люди/2 и люди/3, в одном экземпляре.
Пожалуйста, похлопайте, если предоставленная информация была полезной. Спасибо.