@Stepan1998

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

Есть две функции
В первой лежит Промис, но она не асинхронная
Во второй обычный код

function one() {
const x = new Promise(resolve => {console.log('first function')})
}

function tow() {
console.log('hello world')
}

one()
tow()


И т.к. в первой есть выполнение промиса, она выполняется после второй.

Как сделать так, чтобы сначала выполнилась первая, а после вторая?

Так вышло, что в библиотеке элемента есть два метода, где в первом лежит промис и из-за того, что он не срабатывает первым, элемент выдает ошибку.
  • Вопрос задан
  • 549 просмотров
Решения вопроса 4
ddv88
@ddv88
Binance Futures
Обработать как промис например...
x.then((event) => {  
 tow();
})
Ответ написан
Комментировать
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
1. Нужно из one делать return x. (ну и resolve всё же вызвать)
2. one().then(tow)

Если с async\await,
1. То же самое
2. await one(); tow() (Но тогда вызов этих функций должен быть внутри функции, помеченной как async)
Ответ написан
Комментировать
zkrvndm
@zkrvndm
Архитектор решений
async function test() {
    await one();
    tow();
}

test();
Ответ написан
Комментировать
@hurgadan
первая функция должна вернуть промис

function one() {
  return new Promise(resolve => {
    resolve(console.log('first function'))
  })
}
function two() {
  console.log('hello world')
}

one().then(() => two())
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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