json为空时如何控制JavaScript错误

时间:2019-02-27 11:53:22

标签: javascript json

我正在用javascript解析JSON文件。 JSON每5分钟用新数据自动更新一次,在更新期间JSON为空白(大约2秒钟)。

我收到此错误

  

未捕获(承诺)SyntaxError:JSON输入意外结束       在fetch.then.res

这是javascript中解析JSON的代码:

 fetch("http://location/file/data.json")
          .then(res => res.json()) 
          .then(data => {
            //do something
          })

我该如何控制它以便不标记此错误?我仍然希望使用console.log(Error())出现客户错误。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

这应该可以解决问题。 then()使用第二个回调函数作为接收错误对象的参数。

fetch("http://location/file/data.json")
          .then(res => res.json(), err => console.log(err)) 
          .then(data => {
            //do something
          }, err => console.log(err))

编辑:根据评论,首选这种方式。可以在此link

中阅读有关使用承诺的更多信息
fetch("http://location/file/data.json")
          .then(res => res.json()) 
          .then(data => {
            //do something
          })
          .catch(err => console.log(err)

答案 1 :(得分:2)

您可以在处理中添加.catch

 fetch("http://location/file/data.json")
     .then(res => res.json()) 
     .then(data => {
         // do something
     })
     .catch(err => console.log(err.message))

编辑:err.message,而不是JSON.stringify(err)