模板语法中的Vue异步事件侦听器

时间:2018-04-21 12:32:06

标签: javascript vue.js vuejs2

我正在尝试构建一个子组件,它将事件调度到父组件并进入加载状态,直到父组件解析了该事件。

可以使用异步方法作为模板中事件的回调,如下所示:

父模板:

<some-child
  @refresh="done => myAsyncCallback(done)"
>

父组件:

methods: {
  async myAsyncCallback(done) {
     await someVuexAction()
     done() // notify the child the call is done
  }
}

子组件

// Set component state to loading and change back once finished
this.loading = true
this.$emit('refresh', done => {this.loading = false}

现在这是很多样板,我宁愿把父权的async myAsyncCallback方法作为匿名函数放入我的模板中。

我想像这样:

<some-child
  @refresh="async done => await someVuexAction() && done()"
>

不幸的是,此代码为我提供了Syntax Error: Unexpected token, expected "," (1:421)

有什么建议吗?

0 个答案:

没有答案