根据官方文档,我们都知道,fetch请求数据,返回的response要通过response.json()去获取返回的data,但是如果返回的是null就会报错。这个问题查了蛮久没有方案,其实我们都忽略了另外一个方法response.text()。其实思路很简单,如果返回是null,转json不行,我们转string 总没问题吧?
处理方法如下:
fetch('/admin-api/orders/page?pageNum=1&pageSize=10').then(response=>{
return response.text().then((resText)=>{
if(resText){
return Promise.resolve(JSON.parse(resText)); //此处不要用resonse.json() 因为body是一个stream 只能读一次
}else {
return Promise.resolve(null);
}
}).catch(e=>{
return Promise.reject(e);
})
}).then((res)=>{
console.log(res)
});
我们来看下结果,在有数据的情况下
在返回null的情况下
达到预期