根据特定条件x,我需要立即执行重定向,或者在答应asyncFunction解决后执行重定向:

if (x) {
  await asyncFunction();
  redirectToA();
}
redirectToA();

不过,这很丑陋。有没有一种方法可以简化此代码,以便redirectToA();仅出现一次?

最佳答案

我认为您可以简单地做到这一点:

if (x) {
  await asyncFunction();
}
redirectToA();

这是一个示例,显示redirectToA()将等待:

async function asyncFunction() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve()
    }, 3000)
  })
}

function redirectToA() {
  document.getElementById('status').innerText = "Redirected"
}


(async function() {
  // your code is here
  if (true) {
    await asyncFunction()
  }
  redirectToA()
})()
<p id="status">
  Running
</p>

07-24 09:30