Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
async_await [2024/02/05 20:28] tro |
async_await [2024/02/06 18:27] (текущий) tro |
||
|---|---|---|---|
| Строка 93: | Строка 93: | ||
| </ | </ | ||
| + | Вже .then не потрібна і повернеться саме значення результат функції а не проміс | ||
| ===== HTTP-запити ===== | ===== HTTP-запити ===== | ||
| Використаємо синтаксис async/await при роботі з HTTP-запитами, | Використаємо синтаксис async/await при роботі з HTTP-запитами, | ||
| Строка 105: | Строка 106: | ||
| </ | </ | ||
| + | ===== Обробка помилок ===== | ||
| + | Якщо результат асинхронної функції (проміс) не використовується в зовнішньому коді, помилки оброблюються у самому тілі функції за допомогою конструкції try...catch. Значення параметра error у блоці catch — це помилка, | ||
| + | < | ||
| + | const fetchUsers = async () => { | ||
| + | try { | ||
| + | const response = await axios.get("< | ||
| + | console.log(response.data); | ||
| + | } catch(error) { | ||
| + | console.log(error); | ||
| + | } | ||
| + | }; | ||
| + | |||
| + | </ | ||
| + | ====== Приклади ====== | ||
| + | ===== Виконання декількох запитів HTTP асінхронно ===== | ||
| + | < | ||
| + | async function f1(){ | ||
| + | const url = ' | ||
| + | |||
| + | //сам запит до сервера робимо аасинхронно для швидкості | ||
| + | const p1 = fetch(url); | ||
| + | const p2 = fetch(url); | ||
| + | const p3 = fetch(url); | ||
| + | const p4 = fetch(url); | ||
| + | const p5 = fetch(url); | ||
| + | |||
| + | // | ||
| + | const promise = [p1, | ||
| + | |||
| + | //а тепер у результат кладемо результати проміі і чекаємо тільки коли усі вони виконаються | ||
| + | const result = await Promise.allSettled(promise); | ||
| + | |||
| + | console.log(result) | ||
| + | } | ||
| + | |||
| + | // | ||
| + | f1(); | ||
| + | </ | ||
| + | |||