Привет, народ! 💗 Эта статья посвящена одному из самых важных вопросов интервью - обратным вызовам и обещаниям.

Функции в JavaScript - это объекты. Из-за этого функции могут принимать функции в качестве аргументов и могут быть возвращены другими функциями. Любая функция, переданная в качестве аргумента и вызываемая получающей ее функцией, называется функцией обратного вызова.

Подожди, что !!

Посмотрим-

Операции в JavaScript выполняются сверху вниз (синхронно). Например-

В консоли вы получите следующее:

Теперь предположим, что «Усердный труд» займет некоторое время, давайте немного изменим код.

В консоли вы получите следующее:

Вся операция не приостанавливается на 3 секунды, чтобы записать «Усердно работать», поэтому это возможно. Скорее, движок JS записывает «Дайте интервью» и «Получите работу своей мечты», а через 3 секунды - «Работай усердно». Это называется асинхронной операцией.

Но что, если я хочу, чтобы JS-движок ждал «Работай усердно», а затем выполнял следующие строки ??? 🤔

Вы можете представить себе некоторые реальные ситуации, например, если вы вызываете API и хотите, чтобы следующие строки выполнялись только тогда, когда приходит ответ от API (что занимает некоторое время).

Вот откуда приходят обратные вызовы!

Перезвони

В консоли вы получите -

Давайте посмотрим еще на один пример -

Выход -

Сделайте weather = true, вывод -

Примечание. Функция обратного вызова не запускается, если она не вызывается содержащейся в ней функцией, она вызывается обратно. Следовательно, термин функция обратного вызова

Давайте посмотрим на другой пример -

или вы можете написать это как-

Обратный вызов здесь важен, потому что нам нужно дождаться ответа от сервера, прежде чем мы сможем продолжить наш код. Мы не знаем, будет ли наш запрос API успешным или нет. После ответа API вызывается наша функция обратного вызова.

Обратный вызов ад

До сих пор мы видели, что обратный вызов используется для ожидания, пока API не получит данные. Но что, если вы хотите использовать эти данные для выполнения другого запроса в функции обратного вызова ???

В приведенном выше примере у нас есть обратный вызов в обратном вызове в обратном вызове. Код менее читабелен и запутан. В некоторых случаях у вас может быть обратный вызов в обратном вызове в обратном вызове или даже обратный вызов в обратном вызове в обратном вызове в обратном вызове. БОГ! ЭТО БЕСПЛАТНО!

А вот и концепция обещаний! Мы разберемся с этим в следующей статье.

Спасибо, что прочитали! 🌺🌺