Если вы какое-то время программировали на JavaScript, то, вероятно, использовали метод fetch()
для отправки и запроса информации из API. Вот как выглядит типичный запрос на выборку:
function getData() { fetch(myApi) .then(response => response.json()) .then(results => { console.log(results) // return API data } }
В ES8 JavaScript представил ключевые слова async
и await
. Если вы видите ключевое слово async
перед функцией, вы можете сразу сказать себе: «Эта функция возвращает обещание». Даже если функция не возвращает обещание неявным образом, движок JavaScript автоматически завершит возвращаемое значение в разрешенное обещание.
Функции, которым предшествует async
, выполняются асинхронно через цикл обработки событий JavaScript. Ключевое слово await
указывает JavaScript ждать, пока промис не будет разрешен, а затем возвращать его результат. Однако await
можно использовать только внутри функции async
, иначе вы получите синтаксическую ошибку. Вот приведенный выше пример, переписанный с async
и await:
async function getData() { let response = await fetch(myApi); let results = await response.json(); return results; }
После вызова функции getData()
вы можете добавить then()
для управления возвращаемыми результатами и catch()
для любых ошибок. Ключевые слова async
и await
— это «синтаксический сахар», который позволяет вам выражать мысли более четко и лаконично. На мой взгляд, гораздо проще читать блоки кода без нескольких цепочек then()
.
Итак, вы должны использовать async/await вместо только выборки? В конце концов, они оба могут возвращать одни и те же данные. Но если ваша цель как программиста JavaScript — создать чистый, легко читаемый код, тогда вам следует использовать async
и await
и писать это синтаксическое слащавое совершенство.