Как сделать вызов асинхронной функции js?

Аватар пользователя Кирилл Маркеев
Кирилл Маркеев
06 февраля 2023

Рассмотрим два варианта вызова асинхронной функции: с помощью ключевого слова then и с помощью конструкции async / await.

Создадим асинхронную функцию, которая имитирует загрузку списка товаров с сервера:

const products = [
  {id: '1', title: 'product1'},
  {id: '2', title: 'product2'},
  {id: '3', title: 'product3'},
  {id: '4', title: 'product4'},
  {id: '5', title: 'product5'},
];

const fetchProducts = () => {
  return new Promise((resolve, _reject) => {
    setTimeout(() => resolve(products), 500);
  });
};

Теперь вызовем нашу функцию.

  • С помощью ключевого слова then:
fetchProducts()
  .then((data) => console.log(data)); 
/* => [
  {id: '1', title: 'product1'},
  {id: '2', title: 'product2'},
  {id: '3', title: 'product3'},
  {id: '4', title: 'product4'},
  {id: '5', title: 'product5'}
]
*/
  • C помощью async / await:
const getProductsFromServer = async () => {
  const data = await fetchProducts();
  console.log(data);
};

getProductsFromServer(); 
/* => [
  {id: '1', title: 'product1'},
  {id: '2', title: 'product2'},
  {id: '3', title: 'product3'},
  {id: '4', title: 'product4'},
  {id: '5', title: 'product5'}
]
*/
0 0