Ад обратного вызова JavaScript 😣

«Обратные вызовы — это просто термин для метода доступа к функциям JavaScript».

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

Давайте посмотрим кодирование 😘

Результат: 1

Теперь давайте проверим с помощью setTimeout: 👇

Результат: 0

Можете ли вы подумать, что «что произошло, когда я использовал setTimeout». Есть идеи ?

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

Давайте попробуем несколько вложенных обратных вызовов 🤏

Результат: 100

Обещания JavaScript 😻

«Обещание — это заполнитель для значения, которое неизвестно на момент создания обещания. Он позволяет сопоставлять обработчики с окончательным значением успеха или причиной отказа асинхронной активности. Это позволяет асинхронным методам возвращать значения так же, как это делают синхронные методы: вместо того, чтобы сразу доставлять окончательное значение, асинхронный метод возвращает обещание дать его в какой-то момент в будущем».

Обещание находится в одном из следующих состояний:

✳️ ожидание: исходное состояние, ни выполнено, ни отклонено.

✳️ выполнено / разрешено: означает, что операция была успешно завершена.

✳️ отклонено: означает, что операция не удалась.

Поскольку методы Promise.prototype.then() и Promise.prototype.catch() возвращают промисы, их можно объединить в цепочку.

Давайте разберемся с этим, используя кодирование: 👇

Конструктор промисов ожидает два параметра с именами resolve и reject.

Как управлять обработкой исключений/ошибок 🤔

Выход: 100 или

Существует способ асинхронной обработки промисов. 👇

Примечание. Если мы используем ключевое слово async, нам также необходимо использовать await.

Обещание.all()

Метод Promise.all() принимает итерацию промисов в качестве входных данных и возвращает один Promise, который разрешается в массив результатов ввода промисов. Это возвращенное обещание будет разрешено, когда все обещания ввода будут разрешены, или если итерация ввода не содержит обещаний. Он немедленно отклоняет любое из входных промисов, отклоняющих или не промисов, выдающих ошибку, и отклоняет это первое сообщение об отклонении / ошибку.

Результат:

IIFE —выражение немедленно вызываемой функции

Выражение немедленно вызываемой функции (IIFE) — один из самых популярных шаблонов проектирования в JavaScript. Произносится как iify. IIFE уже давно используется сообществом JavaScript, но у него был вводящий в заблуждение термин «самоисполняемая анонимная функция».

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

Давайте посмотрим на код: 👇

Теперь попробуйте использовать асинхронныефункции со стрелками: 👇

Функции ES6

ECMAScript 2015 был второй крупной версией JavaScript.

ECMAScript 2015 также известен как ES6 и ECMAScript 6.

В этой главе описываются наиболее важные функции ES6.

⛔️ пустьключевое слово

Ключевое слово let позволяет объявить переменную с блочной областью действия.

⛔️ constключевое слово

Ключевое слово const позволяет объявить константу (переменную JavaScript с постоянным значением).

Константы аналогичны переменным let, за исключением того, что их значение нельзя изменить.

⛔️ Функции со стрелками

Стрелочные функции позволяют использовать короткий синтаксис для написания функциональных выражений.

Вам не нужны ключевое слово function, ключевое слово return и фигурные скобки.

Стрелочные функции не имеют собственных this. Они плохо подходят для определения методов объекта.

Стрелочные функции не поднимаются. Они должны быть определены перед их использованием.

Использование const безопаснее, чем использование var, поскольку выражение функции всегда является постоянным значением.

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

Вы можете обратиться к другим функциям ES6 здесь.

VCS — системы контроля версий

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

Вы можете обратиться к командам git ниже: 👇

NoSQL

Что такое NoSQL

♻️ Нереляционный (в основном), без схемы.

♻️ Распространяется.

♻️ Горизонтальное масштабирование.

♻️ Легкая репликация.

♻️ В конечном итоге последовательно.

♻️ Открытый исходный код (в основном).

♻️ Нет поддержки транзакций.

Репликация

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

Почему NoSQL

♻️ Избавьтесь от несоответствий структуры данных между приложениями в оперативной памяти и реляционными базами данных.

♻️С помощью сервисов подключать базы данных (ElasticSearch).

♻️Реляционные базы данных не созданы для эффективной работы в кластерах.

♻️Агрегированные базы данных, основанные на дизайне, ориентированном на предметную область, легче поддерживать в кластерах. (Информация о заказе включена в заказ.)

♻️Связи между агрегатами, напротив, сложнее контролировать.

Примеры для баз данных NoSQL

Теорема CAP

♻️ Согласованность — каждое чтение получает самую последнюю запись, обеспечивая согласованность.
♻️ Доступность — ответ на каждый запрос (нет гарантии, что это самая последняя запись).
♻️ Устойчивость к разделам — система будет продолжать работать даже если большое количество сообщений потеряно через сетевые узлы.

Типы

♻️Key-Value — сохраняет данные в виде пар ключ-значение. Например: Redis, Riak, Memcached.

♻️Документ — сохраняет данные в виде документов (JSON, BSON, XML) в картах или коллекциях. Пример: MongoDB

♻️Семейство столбцов — храните данные в семействах столбцов в виде строк, с которыми связано много столбцов. Пример: Кассандра

♻️График — храните объекты (узлы) и отношения (ребра) между ними и представляйте их на графике. Пример: Neo4j

МонгоБД

MongoDB — это кроссплатформенная документо-ориентированная программа базы данных с доступным исходным кодом. MongoDB классифицируется как программа базы данных NoSQL и использует JSON-подобные документы с необязательными схемами. MongoDB разработан MongoDB Inc.

Скачать MongoDB можно здесь.

Атлас

MongoDB Atlas — это полностью управляемая облачная база данных, которая берет на себя всю сложность развертывания, управления и восстановления ваших развертываний у поставщика облачных услуг по вашему выбору (AWS, Azure и GCP). MongoDB Atlas — лучший способ развертывания, запуска и масштабирования MongoDB в облаке.

Вы можете обратиться к MongoDB 👇

Спасибо за прочтение …!