async_await

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

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