javascript - 如何在 vue.js 中进行条件异步操作

标签 javascript vue.js

我正在使用 vue.js 2.* 。我想对某个项目执行操作,但首先,我检查该项目是否存在,如果不存在,我将通过 API 获取它。我当前的代码如下所示:

if (myItem == null) {
    this.goFetchItem().then(response => {
    myItem.performAction()
  })
} else {
  myItem.performAction()
}

我想知道是否有可能有这样的想法:

if (myItem == null) {
    this.goFetchItem()
}
//And then, when item is fetched :
myItem.performAction()

目前,在第二个示例中,似乎 goFetchItem()是异步执行的,所以myItem仍然是null当尝试执行该操作时。

最佳答案

使用async/await怎么样?

async function foo() {
    if (myItem == null) {
        await this.goFetchItem()
    }

    myItem.performAction()
}

看看这个。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function

Javascript Promises vs Async Await. Difference?

关于javascript - 如何在 vue.js 中进行条件异步操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52043247/

相关文章:

javascript - 如何在固定高度和固定宽度的 div 中包含 fullscreen.js 幻灯片

javascript - 如何从完成的循环中返回数组

javascript - 有没有办法在其 Action 或突变中获取 nameSpaced vuex 模块的名称?

javascript - 如何在禁用的字段集中启用一个按钮

javascript - 使用 Javascript 计算平均时间

javascript - Vuejs如何防止用户登录后进入登录页面?

vue.js - Vue/Nuxt : How to define a global method accessible to all components?

webpack - Axios、依赖项还是开发依赖项?

vue.js - Vuejs 图片 url 链接

javascript - AngularJS ToDO 列表编辑错误