«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Явное избежание ада обратных вызовов

Явное избежание ада обратных вызовов

Опубликовано 17 сентября 2024 г.
Просматривать:118

Асинхронное программирование — одна из сильных сторон JavaScript, особенно в Node.js; однако из-за необходимого разделения задач несколько асинхронных операций часто выполняются посредством обратных вызовов, и это может привести к так называемому «аду обратных вызовов». Например, рассмотрим ситуацию, когда мы работаем с вложенными обратными вызовами в нашем коде JavaScript, и давайте посмотрим, как мы можем его реорганизовать, используя Promises и структуру async/await.

Ад обратного вызова: пример

Давайте начнем с кода, который использует обратные вызовы для обработки файловых операций для простой системы управления продуктами:

Explicitly Avoiding Callback Hell

Здесь у нас есть несколько хорошо вложенных обратных вызовов для чтения и записи в файл. Вероятно, это один из случаев, когда вы бы написали, находясь глубоко в аду обратных вызовов. Наконец, при большем количестве асинхронных операций код будет расти, а количество отступов усложнит его чтение. В методе save() функция fs.readFile считывает файл, а затем ее обратный вызов анализирует содержимое и использует функцию fs.writeFile для перезаписи содержимого файла, что выполняется в другом обратном вызове. Такие уровни вложенности делают код похожим на то, что называют «пирамидой гибели».

Переход к обещаниям и Async/Await

Чтобы избежать этого ада обратных вызовов, существуют обещания JavaScript и синтаксис async/await, которые делают код более читабельным, управляемым и удобным для отладки.
Вот улучшенная версия:

Explicitly Avoiding Callback Hell

Почему обещания и Async/Await?

Промисы полезны, поскольку позволяют управлять асинхронными операциями линейно и с наименьшим количеством вложенных структур. Шаблон async/await повышает читаемость кода, а также обращается к асинхронным операциям таким образом, чтобы они были ближе к синхронным операциям. Используя специально блоки try и catch, обработка ошибок становится более прозрачной и понятной, что способствует удобству сопровождения кода.

Заключение

Ад обратных вызовов может стать настоящей проблемой при написании кода в чистом виде на JavaScript, особенно в Node.js. С помощью Promises и async/await можно превратить ад сильно вложенных обратных вызовов в чистый линейный код, в то же время упрощая обработку ошибок. Он не только преобразит ваш код, чтобы он выглядел намного лучше, но и направит вас на правильный путь к тому, чтобы стать лучшим программистом JavaScript.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/syriamme/explicitly-avoiding-callback-hell-h95?1. В случае нарушения авторских прав свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3