javascript - 处理相同代码必须立即运行或在 promise 解决后运行的情况的最佳方法

标签 javascript vue.js promise

根据特定条件x,我需要立即执行重定向或在 promise 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>

关于javascript - 处理相同代码必须立即运行或在 promise 解决后运行的情况的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60746365/

相关文章:

javascript - 如何中止 JavaScript 异步函数?

node.js - 无法在 async-promise 函数中使用 Jasmine 的 'It' block

javascript - 将 AngularJS 指令动态添加到页面以显示和呈现指令不起作用

javascript - JS 模块化设计 - 上下文问题

javascript - 在 JS 时间轴上显示 JSON 文件中的时间

javascript - Vue.js 无法从方法添加样式

c# - jquery 文本框在 asp.net 中不返回任何值

javascript - 使用当前 vue 组件的方法作为默认的 prop 值

javascript - Nuxt 插件抛出注入(inject)不是一个函数

javascript - 如何导出 .then() block 之外的数据(SuperAgent 库)?