В JavaScript обещания представляют операции, которые еще не завершены. Промисы Js похожи на промисы в реальной жизни. Это объект, который может вернуть значение в будущем, но не сейчас, поэтому он называется промисом.
Всего существует три этапа промисов:
В ожидании: это начальный этап,ни выполнен, ни отклонен. Значение результата на этом этапе не определено.
Выполнено: это этап, когда операция выполнена успешно. Значение результата на этом этапе является допустимым значением.
Отклонено: этап, на котором операция отклонена или не удалась. Результатом на этом этапе является объект ошибки.
Обещание начинается с первого этапа, известного как ожидающий этап, который показывает, что обещание еще не выполнено, и заканчивается либо выполненным, либо отклоненным этапом.
Например, когда мы запрашиваем данные из API или сервера, они находятся на стадии ожидания до тех пор, пока данные не будут получены, и завершатся либо успешно (выполнено), либо неудачно (отклонено).
Синтаксис обещаний JavaScript
Для создания обещания используется конструктор Promise. Он принимает функцию для выполнения обещания. Сама эта функция принимает две функции: разрешить и отклонить.
Разрешение и отклонение - это не что иное, как функции обратного вызова, которые вы будете вызывать в соответствии с результатом операции, поэтому, если ваша операция выполнена успешно, будет вызвана функция разрешения (), в противном случае будет вызвана функция отклонения (). (кстати, resolve() и reject() — это имена функций обратного вызова, использующие стандартные соглашения, вы можете использовать другие имена).
Когда вы вызываете промис, вызывается внутренняя функция, внутри которой вы вызываете функцию resolve() в случае успешного выполнения операции или функцию reject() в случае ошибки. имеет место.
Когда обещание выполнено, promise.then(), promise.catch() используются для выполнения дальнейших действий.
Метод .then()
принимает до двух аргументов; первая — функция обратного вызова для случая, когда обещание разрешено, а вторая — для случая отклонения. Мы можем использовать метод multi.then()
для целей цепочки, в этом случае каждый .then() будет возвращать объект, который будет использоваться следующим методом .then() в цепочке.
Мы также можем использовать метод .catch() для обработки случая ошибки (этап отклонения), используя метод .catch() отдельно от метода .then() следующим образом:
Теперь давайте посмотрим на пример обещания
Давайте посмотрим, что здесь произошло
Итак, мы вызвали промис и подождали, пока обещание будет выполнено с помощью .then(), и когда обещание будет выполнено, оно заканчивается одним из двух результатов, то есть (успехом или отклонением), поэтому мы соответственно вызываем две функции. Если наше обещание выполнено успешно, мы вызываем функцию успеха с возвращенным ответом в качестве аргумента и используем этот ответ для следующих шагов, но если обещание отклонено, мы вызываем функцию с объектом ошибки внутри нее и смотрим, что это за ошибка, и действовать соответственно.
Таким образом, мы используем промисы в JavaScript.
Надеюсь, это поможет вам понять промисы в JavaScript.
Удачного кодирования :)