Безумие обратных вызовов в javascript [JS]

RedDeveloper
11.07.2023 16:05
Безумие обратных вызовов в javascript [JS]

Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир Javascript. Обратные вызовы 🤓. Если вы начинающий программист, то этот пост для вас.

Что такое обратный вызов 🤔.

Обратный вызов в JavaScript - это функция, которая передается в качестве аргумента другой функции. Это способ гарантировать, что определенные части кода не будут выполняться до тех пор, пока не завершатся другие части.

Как выглядит функция обратного вызова? 👁️

Представьте, что у вас есть робот-друг 🤖, который учится делать сэндвич. Вы можете дать ему пошаговые инструкции следующим образом:

Эти функции выполняются одна за другой, но что, если функция getBread() занимает много времени? Возможно, робот начнет добавлятьFilling() еще до того, как получит хлеб, что приведет к беспорядку на кухне 🤡. Я не хочу получить бутерброд, в котором нет хлеба.

Чтобы избежать этого, можно указать роботу, чтобы он начинал выполнять функцию addFill() только после завершения функции getBread(), используя обратный вызов.

Чтобы избежать этого можно указать роботу чтобы он начинал выполнять функцию addFill()

Теперь робот начнет выполнять функцию addFill() только после завершения функции getPan() благодаря функции обратного вызова 🥪.

Пример из реальной жизни 👌.

Если говорить более серьезно, то давайте рассмотрим пример из реальной жизни. Представьте, что у вас есть приложение для управления интернет-магазином 🛒. Пользователь может нажать кнопку, чтобы купить товар, но вы не хотите, чтобы с него взималась плата до тех пор, пока вы не убедитесь, что товар есть на складе.

Если говорить более серьезно то давайте рассмотрим пример из реальной жизни Представьте

В данном примере функции collectUser() и sendProduct() выполняются только после завершения функции checkInventory().

Заключение 🧏‍♂️

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

Но помните, что хотя обратные вызовы могут быть невероятно полезны, иногда они могут привести к так называемому "аду обратных вызовов" - куче вложенных функций, которые трудно читать и поддерживать. Поэтому, хотя они и являются фундаментальной частью JavaScript, важно знать и о других способах работы с асинхронным кодом, таких как Promises и async/await.

Наконец, никогда не забывайте, что цель состоит в том, чтобы писать код, который легко читать и поддерживать. По мере накопления опыта вы поймете, когда и где следует использовать тот или иной инструмент. Продолжайте кодировать, учитесь и стройте! 💻🚀

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?

20.08.2023 18:21

Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией

20.08.2023 17:46

В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox

19.08.2023 18:39

Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest

19.08.2023 17:22

В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!

Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️

18.08.2023 20:33

Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL

14.08.2023 14:49

Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.