В JavaScript обещания представляют операции, которые еще не завершены. Промисы Js похожи на промисы в реальной жизни. Это объект, который может вернуть значение в будущем, но не сейчас, поэтому он называется промисом.

Всего существует три этапа промисов:

В ожидании: это начальный этап,ни выполнен, ни отклонен. Значение результата на этом этапе не определено.

Выполнено: это этап, когда операция выполнена успешно. Значение результата на этом этапе является допустимым значением.

Отклонено: этап, на котором операция отклонена или не удалась. Результатом на этом этапе является объект ошибки.

Обещание начинается с первого этапа, известного как ожидающий этап, который показывает, что обещание еще не выполнено, и заканчивается либо выполненным, либо отклоненным этапом.

Например, когда мы запрашиваем данные из API или сервера, они находятся на стадии ожидания до тех пор, пока данные не будут получены, и завершатся либо успешно (выполнено), либо неудачно (отклонено).

Синтаксис обещаний JavaScript

Для создания обещания используется конструктор Promise. Он принимает функцию для выполнения обещания. Сама эта функция принимает две функции: разрешить и отклонить.

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

Когда вы вызываете промис, вызывается внутренняя функция, внутри которой вы вызываете функцию resolve() в случае успешного выполнения операции или функцию reject() в случае ошибки. имеет место.

Когда обещание выполнено, promise.then(), promise.catch() используются для выполнения дальнейших действий.

Метод .then() принимает до двух аргументов; первая — функция обратного вызова для случая, когда обещание разрешено, а вторая — для случая отклонения. Мы можем использовать метод multi.then() для целей цепочки, в этом случае каждый .then() будет возвращать объект, который будет использоваться следующим методом .then() в цепочке.

Мы также можем использовать метод .catch() для обработки случая ошибки (этап отклонения), используя метод .catch() отдельно от метода .then() следующим образом:

Теперь давайте посмотрим на пример обещания

Давайте посмотрим, что здесь произошло

Итак, мы вызвали промис и подождали, пока обещание будет выполнено с помощью .then(), и когда обещание будет выполнено, оно заканчивается одним из двух результатов, то есть (успехом или отклонением), поэтому мы соответственно вызываем две функции. Если наше обещание выполнено успешно, мы вызываем функцию успеха с возвращенным ответом в качестве аргумента и используем этот ответ для следующих шагов, но если обещание отклонено, мы вызываем функцию с объектом ошибки внутри нее и смотрим, что это за ошибка, и действовать соответственно.

Таким образом, мы используем промисы в JavaScript.

Надеюсь, это поможет вам понять промисы в JavaScript.

Удачного кодирования :)