大数解决方案
服务器返回来的值超出了 JavaScript 中最大的 Number 数值,会导致 JS 无法正确的进行数字的处理和运算
解决方案:json-bigint(https://www.npmjs.com/package/json-bigint)
-
下载json-bigint包
yarn add json-bigint -
在request.js中使用,对后台的数据,不要让axios自动转成JS对象,需要用json-bigint转换
import bigInt from 'json-bigint' const ajax = axios.create({ baseURL:'请求的基础路径', transformResponse:[(data) => { // 对内容进行处理 // data:就是本次请求获取的数据 // 在这里可以对它进行进一步的处理 --JSONbig // 后端返回数据可能不是 JSON 字符串,而JSONbig.parse()只能处理JSON字符串 // 所以,为了保证代码可以正常执行,这里引入try-catch来捕获异常 try { // 尝试着进行大数的处理 return bigInt.parse(data) } catch { // 大数处理失败时的后备方案 return JSON.parse(data) } }] })
当服务器返回的数值超过JavaScript Number类型的最大值时,会导致计算错误。解决这个问题的一种方法是使用json-bigint库。通过安装并配置axios,不让其自动将响应数据转化为JS对象,而是使用json-bigint来解析大数据,确保大数处理的准确性。在请求响应处理中,用try-catch包裹转换过程,当大数转换失败时,退回到普通的JSON解析,以保证代码的稳健性。
766

被折叠的 条评论
为什么被折叠?



