Как сделать вызов асинхронной функции 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