Задать вопрос
@AlexNew22

Для чего нужен Promise.resolve, если он не срабатывает в Promise?

Для чего нужна конструкция Promise.resolve, если она не срабатывает в обычном new Promise?
И можно как-то выполнить промис без аргументов?
function getData() {
	return new Promise(() => {
    setTimeout(() => {
    	Promise.resolve('resolve')
    }, 2000)
  })
}

const app = async () => {
	const result = await getData()
  console.log(result)
}

app()
  • Вопрос задан
  • 323 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Promise.resolve(value) - это статический метод, возвращающий промис в состоянии fulfilled с указанным значением.
Эквивалент new Promise((resolve) => resolve(value))
И можно как-то выполнить промис без аргументов?
Что значит "выполнить"? Создать можно, сменить статус с pending на fulfilled нельзя, на rejected можно по исключению.
P.S. Если вас смущает то, что и там и там используется resolve, то в new Promise это всего лишь название переменной для каллбэка в функции. Оно может быть любым.
new Promise((แก้ไข) => แก้ไข('Решено'));
//Promise { <state>: "fulfilled", <value>: "Решено" }
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
Чтобы new Promise() куда-то сдвинулся,
надо вызвать одну из двух функций, передаваемых во внутрь:

new Promise((resolve, reject) => {
  // что угодно происходит
  // и в какой-то момент
  resolve(value);
});


А то, что внутри вдруг создали новый промис, который сразу в ресолвнутом состоянии – всем безразлично.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы