@derasoft

Как заставить функцию дождаться выполнения промиса?

Здравствуйте. Имеется следущая функция:
function light_q() {
	let res = 5
	let promise = new Promise((resolve, reject) => {
		resolve(3);
	});
	promise.then(result => {
		res = result;
		console.log(result);
	});
	return res;
}

Я не могу понять, как мне сделать так, чтобы функция дожидалась выполнения промиса, и лишь затем возвращала значение. Полагаю, нужно поместить возврат значения функции light_q() внутрь промиса, но у меня нет ни малейшей идеи как это сделать.
  • Вопрос задан
  • 261 просмотр
Решения вопроса 1
@palevg
Frontend developer
Пример, чтоб совсем ясно стало)))
async function light_q() {
  let res = 5
  let promise = new Promise((resolve, reject) => {
    resolve(3);
  });
  await promise.then(result => {
    res = result;
    console.log('1', res);
  });
  return res;
}

light_q().then(result => {
    console.log('2', result);
  });

1 и 2 в консоли лишь для визуального подтверждения правильной последовательности событий
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
async function light_q() {
  const res = await new Promise((resolve, reject) => {
    resolve(3);
  });
  console.log(res);
  return res;
}

const result = await light_q();
Ответ написан
@VladimirLazarev
async/await
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы