无法显示异步功能结果

时间:2018-07-14 07:23:47

标签: vue.js fetch

我需要在我的html变量中显示:{my_dates}。我无法通过fetch使用它,但可以处理旧的Ajax请求。

无效代码:

   created: function(){
        //this.getTableData()

        url = 'http://dlang.ru/test'

        async function fetchAsync () {
          const response = await fetch(url);
          return await response.json();
        }

        this.my_dates = fetchAsync();

    } 

工作代码:

$.ajax({
    url: "http://dlang.ru/test",
    success: function (data) {
         Vue.set(app, "my_dates", data);
         app.show = true;
    }
});

2 个答案:

答案 0 :(得分:1)

请尝试以下操作:

 created: function(){
    //this.getTableData()

    url = 'http://dlang.ru/test'

    async function fetchAsync () {
      const response = await fetch(url);
      const data = await response.json();
      Vue.set(app, "my_dates", data);
      app.show = true;
    }

    fetchAsync();

} 

答案 1 :(得分:1)

如果您希望能够将fetchAsync()的结果分配给this.my_dates,则需要将整个created挂钩方法声明为async

然后,您还需要在await通话之前放置fetchAsync

created: async function () {
  const url = 'http://dlang.ru/test';

  async function fetchAsync() {
    const response = await fetch(url);
    return await response.json();
  }

  this.my_dates = await fetchAsync();
}