京东小程序报错APP-SERVICE-SDK:setStorageSync:fail
京东小程序后台监控中心-业务代码异常报错:
4,Error,APP-SERVICE-SDK:setStorageSync:fail; at pages/brand/index onReady function; at api request success callback function, Error: APP-SERVICE-SDK:setStorageSync:fail at new b (<anonymous>:1:126917) at setStorageSync (<anonymous>:1:435238) at Function.r.<computed> (<anonymous>:1:437590) at Object.<anonymous> (<anonymous>:1:124764) at Function.success (<anonymous>:34:3463) at Object.success (<anonymous>:1:81695) at e.<anonymous> (<anonymous>:1:369146) at e.emit (<anonymous>:1:141369) at Function.<anonymous> (<anonymous>:1:369973) at <anonymous>:1:124764,1.14.14,1000
已经借住AI进行了N次优化了,已经做了参数类型检查,依然还会有这个报错,目前的代码如下:
onLoad: function (options) { let { utm_source } = options; if (utm_source) { if (!(typeof utm_source === "string" && utm_source.trim() !== "")) { jd.showToast("参数格式错误:utm_source"); return; } try { jd.setStorageSync("utm_source", utm_source); } catch (e) { console.error("[品牌渠道存储失败]", "错误信息:", e.message, "错误堆栈:", e.stack); } this.initData() //其他代码省略 }
initData方法中调用setStorageSync的关键代码:
//配置有品牌色调,则缓存品牌色调 try { // 1. 集中配置:默认色+存储映射(后续扩展/修改只需改这里) const BRAND_DEFAULT_COLOR = "#D34B48"; const colorStorageMap = [ { key: "brandFontColor", value: brandFontColor }, { key: "brandBgColor", value: brandBgColor }, ]; // 2. 批量存储:循环处理,消除重复代码 colorStorageMap.forEach(({ key, value }) => { // 保留原逻辑的严谨性:仅 undefined/null 时用默认值 const storageValue = typeof value !== "undefined" && value !== null ? value : BRAND_DEFAULT_COLOR; jd.setStorageSync(key, storageValue); }); } catch (e) { // 3. 优化错误日志:用 error 级别+明确描述,方便定位问题 console.error("[品牌色存储失败]", "错误信息:", e.message, "错误堆栈:", e.stack); }
已经优化n次发了好几个小版本了,但依然有这个报错,虽然也只是几天有一个报错,但看着还是蛮扎眼的,希望有遇到的同学可以分享下经验。
搜到了个微信小程序真机运行的报错,跟这个类似,网友解决方案是退出程序重新试(不就是无解么?),感觉是不是官方bug?

个人原创博客,转载请注明来源地址:https://www.cnblogs.com/xyyt
浙公网安备 33010602011771号