Обещание — это конкретный объект JavaScript, который связывает «производящий код» и «потребляющий код» вместе. Говоря обычным языком, это «список подписки». Это похоже на концепцию производителей и потребителей.
Javascript promise.resolve ()
Javascript Promise.resolve () — это встроенная функция, которая возвращает объект Promise, разрешенный с заданным значением. Если значением является обещание, это обещание возвращается; если значение является thenable (т. е. имеет метод then ), то возвращенное обещание будет « следовать ”Этот thenable , принимающий его конечное состояние; в противном случае возвращенное обещание будет выполнено со значением.
«Производящий код» займет столько времени, сколько необходимо для получения обещанного результата, и « обещание ”Делает результат доступным для всех подписчиков, когда он готов.
Если задание завершено успешно, с результатом значение.
Синтаксис
Синтаксис для Javascript Promise.resolve () следующий.
Promise.resolve (value);
Параметры
Это обещание разрешает параметр значения. Это также может быть Promise или подлежащее разрешению.
обещание разрешается с заданным значением или обещание, переданное как значение, если значение было объектом обещания. Статическая функция Promise.resolve () возвращает выполненное Promise .
Пример
Давайте рассмотрим простой пример. Напишите следующий код внутри файла app.js .
//app.jsconst p1 = new Promise ((resolve, reject) => {//eslint -disable-line no-unused-varssetTimeout (() => {resolve ('AppDividend');}, 1000);}); p1.then (values => {console.log (values);});
Сохраните файл, перейдите в терминал и запустите файл, набрав node app команда.
Здесь можно использовать обещание p1, и в конечном итоге возвращает значение
Разрешение массива
Давайте возьмем простой пример, разрешающий массив.
//app.jsconst p1 = new Promise ((resolve, reject) => {//eslint-disable-line no-unused-varssetTimeout (() => {resolve ([18, 21, 22]);}, 1000);}); p1.then (values => {console.log (values [0]);}];
Он вернет значение 18 .
р>
Выполнение другого обещания
Давайте рассмотрим следующий пример.
//app.jsconst p = Promise. resolve (21); const p1 = new Promise ((resolve, reject) => {//eslint-disable-line no-unused-varssetTimeout (() => {p.then (value => console.log (значение) );}, 1000);}); p1.then (values => {console.log (values);});
Здесь мы разрешаем обещание внутри обещания. Таким образом, окончательный результат будет значением первого обещания.
Разница между Promise.resolve () и new Promise ()
Синтаксис Promise.resolve () следующий.
Promise.resolve (x);
, который в основном совпадает с
new Promise (function (r) {r (x);});
здесь есть тонкость.
Функции, возвращающие обещания, обычно должны гарантировать, что они не будут генерировать синхронно, поскольку они могут вызывать асинхронно.
Чтобы предотвратить непредвиденные результаты и условия гонки — выбросы обычно преобразуются в возвращенные отклонения.
Имея это в виду — когда спецификация была создана, конструктор обещания бросает безопасно.
Обычно Promise.resolve () используется для приведения объектов и внешних обещаний (thenables) к обещаниям. Это его вариант использования.
Заключение
Правило таково: если функция находится внутри, то обработчик возвращает значение, обещание разрешает/отклоняет это значение.
Если функция возвращает обещание, то происходит следующее, тогда предложение будет предложением then в обещании, которое вернула функция.
Делаем вещи особенными внутри функции-обработчика then:
1) Когда x является значением (числом, строкой и т. д.):
- Возвращает x эквивалентно return Promise.resolve (x)
- Выбрасывает x эквивалентно return Promise.reject (x)
2) Когда x — это обещание, которое уже рассчитано (больше не ожидает):
- Он возвращает x эквивалентно возврату Promise.resolve (x), если обещание уже было решено.
- Он возвращает x эквивалентно возврату Promise.reject (x), если обещание уже было отклонено.
3) Когда x является обещанием который находится в ожидании: return x вернет ожидающее обещание, и оно будет оценено в последующем.
Наконец, пример функции Promise.resolve () завершен.
Рекомендуемые сообщения
Javascript Promise reject ()
Javascript Promise all ()
Гонка обещаний Javascript ()