JavaScript удивительно. Настолько удивительно на самом деле, это самые популярные языки там. Это отлично подходит для начинающих и экспертов.
JavaScript настолько удивительно, потому что ему удалось сделать веб-более интерактивное и интересное место. Он открыл совершенно новый мир веб-контента, от скучного текста с несколькими фотографиями, в удивительные веб-приложения и даже игры, которые вы можете играть в вашем браузере.
JavaScript развился в ближайшие годы, где, что-то, что ранее было только с помощью Flash (запоминание Flash?) Теперь возможно с нулевыми расширениями.
Он имеет по праву, стать стандартом для динамического контента в Интернете. Браузеры были бы сумасшедшими, чтобы не поддерживать его, а веб-сайты без него ничто.
Как это работает, является блестящим. На HTML странице открыть Тег ET VOILA Действительно У вас есть возможность создавать сценарии в вашем браузере!
My amazing website
И это работает так же, как любой другой язык, как Java или Python, работает! Начиная с вершины, он будет выполнять строку скрипта по линии, пока она не достигнет дна. И все это происходит в браузере всякий раз, когда ваш пользователь загружает страницу. Блестящие вещи!
Заблокировка кода выше делает некоторые довольно базовые вещи. Он присваивает переменной, имеет к ней немного математики, а затем отображает всплывающее предупреждение с результатом. Он должен взять миллисекунды для бега, что означает, что пользователь даже не понимает, что это случилось.
Но как насчет вещей, которые забирают немного дольше, чтобы завершить? Такие вещи, как получить данные с другого сайта? В зависимости от источника данных, он может занять от нескольких секунд до минуты Возвращать ответ! Как ответить JavaScript?
Представьте, что мы делаем что-то подобное в Python. Мы хотим запрашивать некоторые данные с другого сайта, храните его в переменной, и мы отображаем его пользователю:
data = get_data_from("https://api.example.com/data")
print(data)
Если бы мы запускали это в терминале, мы ожидаем, что он замораживается в течение нескольких секунд, пока данные не будут переданы нам, а затем распечатать эти данные к терминалу. Это ожидаемое поведение, которое в порядке, когда это происходит в терминале.
JavaScript, однако, это другая история. Представьте, что он действовал так же, как Python, когда мы запрашиваем некоторые данные из удаленного источника:
var data = getDataFrom("https://api.example.com/data")
console.log(data)
Проблема в том, что JavaScript работает в браузере. Если каждый раз, когда он ждал некоторых данных, чтобы получить из некоторого удаленного источника, браузер замерзнет! Все, что основано в JavaScript, перестанет работать, пока данные не вернутся к нам. Кнопки перестанут реагировать на клики, любая интерактивность остановится.
Пользователи нажимают на кнопки, ожидая, что что-то произойдет, и ничего не будет. Это ужасно Пользовательский опыт! Что-то нужно было сделать, чтобы исправить эту проблему!
Обещания являются решением проблемы запроса на данные. По сути, это способ сказать:
«Перейти получить некоторые данные с этого API. Тем не менее, я не буду сидеть здесь и ждать тебя, потому что это может занять некоторое время, и это заморозить мой браузер »
Обещания также способ сказать:
«Перейти получить некоторые данные с этого API. Я собираюсь перейти к следующей строке, но, как только вы получите некоторые данные, я хочу, чтобы вы сделали Что-то с ними".
Смотрите этот пример ниже:
console.log("Getting some data for you...")
getDataFrom("https://api.example.com/data")
.then((response) => {
console.log(response)
console.log("All done!")
})
console.log("Javascript is great!")
Если мы запустим пример выше, это то, что произойдет:
- Распечатать «Получение некоторых данных для вас ...»
- Запросить некоторые данные
- Печать «JavaScript отлично»
- Как только данные вернутся Распечатайте данные, а затем распечатайте «Все сделано!»
Таким образом, ваш браузер не замерзает при выборе данных. Так что JavaScript счастлив, ваш браузер счастлив, и самое главное, из всех, Ваш пользователь счастлив Отказ
Это было основано на Это нить в Twitter Опубликовано месяц назад и доказано довольно популярным
Оригинал: "https://dev.to/savvasstephnds/javascript-promises-explained-4cj7"