Javascript 使用async wait在Vuejs中的函数内等待赋值

Javascript 使用async wait在Vuejs中的函数内等待赋值,javascript,function,vue.js,asynchronous,async-await,Javascript,Function,Vue.js,Asynchronous,Async Await,我有一个函数可以做两件事。我想等待第一行,然后执行第二行。第一行是一个简单的赋值。如何使用async await实现这一点,而不将第一个赋值设为函数。下面的代码在第2行中给出了一个错误 async eg(){ await a = b; c.focus(); } 正如用户所提到的,使用this.$nextTick()完美地解决了它 eg() { this.a = this.b; setTimeout(() => { this.$refs["c"].focus

我有一个函数可以做两件事。我想等待第一行,然后执行第二行。第一行是一个简单的赋值。如何使用async await实现这一点,而不将第一个赋值设为函数。下面的代码在第2行中给出了一个错误

async eg(){
    await a = b;
    c.focus();
}

正如用户所提到的,使用
this.$nextTick()完美地解决了它

eg() {
  this.a = this.b;
  setTimeout(() => {
    this.$refs["c"].focus();
  }, 1);
}

您不必等待分配任务。无论如何,赋值都是同步的,因此在继续下一行之前,它将始终“等待”它完成。如果函数所做的两件事都不是异步的,那么您不需要也不应该使用-
async
/
wait
。我有一个带有
v-If
的div,它只有在a等于b时才会实现。当这种情况发生时,会出现一个包含c的弹出窗口,然后我希望焦点移到c。如果没有async await,它将无法工作。同意前面的两条注释:您不需要
await
来分配任务。你能发布模板的摘录吗?这可能与“组件在我想更新时不更新”的问题有关。像
这样的东西。$nextTick()可以帮助。等待应该在右侧。a=等待b