微信小程序uni.request 返回值存在精度丢失问题
今天我司返回任务列表的时候当我取ID字段存在了精度丢失问题,微信小程序是有问题的,然后我用postman调用这个接口又没出现,这就是微信小程序新规影响了。
这是因为后端返回的数据类似是long类型导致精度丢失了,如果后端返回string类型就没有这个问题,但是总会出现后端不好解决,那这个时候就需要我们全能的前端去兼容下呐。
问题:1
从network面板中返回的参数就已经看到精度就丢失了
下面这个是我处理过后的ID就是正确的
解决方案
步骤一:按照下面这个第三库
import JSONbig from 'json-bigint'
使用:
this.$request({url: '/rest/rider/deliveryOrder/listDeliveryOrderCalendar',
data: { startTime: this.getDateRange(time).start, endTime: this.getDateRange(time).end },
method: 'GET'}).then((res) => {// 对返回的res直接使用JSONbig.parse处理下即可
const result = JSONbig.parse(res)
if (result.code == 200 && result?.data && result.data.length > 0) {
this.tasks = result.data.map((order, index) => {
return {...this.formatOrderTimes(order),...order,
// 此时的id是BigNumber类型我们直接调用toString()方法即可拼接成一个完整的ID
id: order.id.toString()}});}})