如何处理axios中的空响应?

问题描述:

我使用axiosvue.js来获取数据为无限分页。它工作正常,预计在没有数据来呈现:如何处理axios中的空响应?

fetchData() { 
    this.loading = true 
    this.page++; 
    axios.get(this.BASE_URL + '/api/jokes/'+'?page='+this.page).then( 
    response => 
    //how to exist if there is no data in the response? 
     this.jokes = response.data).catch(function (error) { 
     console.log(error); 
     }); 

我不知道如何停止渲染当我们到达最后一页,也没有更多的数据,以显示?我看过docs但找不到我的答案。

也许介绍一些基本的标志逻辑。我采取了*承担,但你总是可以定义你的逻辑

fetchData() { 
    this.loading = true; 
    if (this.page > 0) { 
     axios.get(this.BASE_URL + '/api/jokes/page=' + this.page) 
      .then(response => { 
       const isDataAvailable = response.data && response.data.length; 
       this.jokes = isDataAvailable ? response.data : []; 
       this.page = isDataAvailable ? (this.page + 1) : 0; 
      }) 
      .catch(function(error) { 
       console.error(error); 
      }); 
    } 
} 
+0

这是行不通的。我不想重写整个功能。当response.data为空时,请限制您的答案以打破此功能。 – Karlom