асинхронные / ожидающие параллельные вызовы функций в JavaScript (цепные функции) - PullRequest
0 голосов
/ 31 октября 2019

Я думаю, что, вероятно, неправильно понимаю, как использовать async / await, но я изо всех сил пытаюсь найти решение, которое не вписывается в обещания.

У меня есть оператор if, который содержит две функции. Мне нужно, чтобы функция два запускалась только после завершения функции. добавление асинхронного режима и ожидание перед ними, похоже, не работает, но я не думаю, что я за миллион миль отсюда.

Любая помощь будет отличной! Спасибо!

if (someBoolean) {
  functionOne();
  functionTwo();
}

if (someBoolean) {
  async functionOne();
  await functionTwo();
}

Ответы [ 2 ]

4 голосов
/ 31 октября 2019

Вы используете await для обоих.

if (someBoolean) {
  await functionOne();
  await functionTwo();
}

async используется при объявлении функций

async function functionOne() {... }
0 голосов
/ 31 октября 2019

async / await использует обещания! Так что я думаю, что это не лучший путь, если вы хотите избежать обещаний. Лучше всего включить обратный вызов в первую функцию.

function one(callback) {
  /* do your stuff here */
  if (typeof callback === 'function) {
    callback()
  }
}

function two() {/* do the second set of things here */}

if (someBoolean) {
  one(two)
}
...