Знаете ли вы, что можете создавать свои собственные обещания?

Здравствуйте, если вы хотите испытать Medium на себе, рассмотрите возможность поддержки меня и всех других авторов, подписавшись на членство за 5 долларов в месяц, чтобы поддерживать независимое писательство. , зарегистрируйтесь здесь ;)

Помимо поддержки других, Medium может поддержать и вас посредством написания статей и мощного заинтересованного сообщества, которое находит здесь свой дом.

Самое классное в промисах то, что вы можете либо сделать awaitдля них, либо сделать .thenна обещании. Оба являются допустимыми способами выполнения кода после разрешения промиса.

Если вы чувствуете, что не совсем уверены в обратных вызовах, промисах, асинхронном ожидании, ознакомьтесь с моей статьей об этом, где я подробно все объясняю:



Это промис, сделанный с помощью встроенного конструктора промисов:

const promise = new Promise((resolve, reject) => {
res('data')
})
const data = await promise // 'data'

Так что да, это все круто, но знаете ли вы, что функция async буквально похожа на обещание?

Да, или, если быть более точным, он возвращает обещание.

Итак, если мы напишем асинхронную функцию, мы можем сделать для нее .then() или await, точно так же, как мы делаем для самого промиса!

Но имейте в виду, что асинхронная функция — это не обещание; он просто возвращает обещание.

И, поскольку мы знаем, что он возвращает промис, мы можем делать то же самое, что и с промисом, как .then() и await и т. д.

Вот пример:

const promise = async () => {
return 'data'
}
const data = await promise() // 'data'

Мы также можем использовать .then следующим образом:

const promise = async () => {
return "data";
};
promise().then((data) => console.log(data)); // 'data'

Если вы мне не верите, проверьте это:

Как видите, он возвращает обещание. ✅

Если вы думали, что вам нужно создать промис с помощью конструктора промисов для написания асинхронного кода, теперь вы можете вместо этого создать для него асинхронную функцию. Конечно, у промисов есть свое место, как и у асинхронных функций.

Вы, вероятно, делаете это ежедневно, но я сначала не понял, что асинхронная функция буквально просто возвращает обещание, и все, что она возвращает, такое же, как и при разрешении обещания.

Если вам понравилась эта часть, я надеюсь, что вам также понравится:







Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.