请教关于 JS 的 await 的问题,应该没那么幼稚

2020-01-16 15:37:50 +08:00
 Rexxar

公司就我一个开发,后端被逼成了全干,现在前端越来越复杂,头大。

找了个 VUE 的模板。echarts 想用 ydata 接收后端传来的值,定义了取值的方法 fetchData,因为是 axios 异步的,在 drawLine 调用 await 修饰的 fetchData,然而 console.log ydata 是空的,感觉是一个 await 不管用,还有 then 的影响没消除。 但是我不调用 fetchData(),直接在 drawLine()里面使用 await this.$axiso.post(...),却成功给 ydata 赋值了。看起来跟直接调用 fetchData 没什么区别,理解不了。

methods: { fetchData() { this.$axios .post("/controllermsgdatelist", this.listQuery) .then(response => { this.ydata = response.data.result; }); },

async drawLine() {
  await this.$axios
    .post("/controllermsgdatelist", this.listQuery)
    .then(response => {
      this.ydata = response.data.result;
    });

  // await this.fetchData();

  console.log(this.ydata);

}

3447 次点击
所在节点    JavaScript
22 条回复
Vogan
2020-01-16 23:54:52 +08:00
既然用 async/await 了,就都用,别一会又 Promise 的。胡乱扑腾。
Reol
2020-01-18 16:25:51 +08:00
@shintendo 感谢大佬,吃瓜过程发现原来自己理解的也不深刻。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/638460

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX