Android 兼容性问题
发布于 6 年前 作者 nalu 15799 次浏览 来自 问答

问题描述:

Android 部分平台(如 MI4 Android 6.0.1,华为,OPPO 等相关型号均会出现)在比较两个值时,使用 “===” 不能正确得到运算结果,必须使用 “==” 才可以。

是否必现:

在特定平台上必现

代码示例:

      success: (res) => {

        if (res.statusCode === 200) {

          return resolve(res.data)

        } else {

          return reject(res.data)

        }

      },

上面代码是 wx.request 的 success 回调函数,如果写成上面样子,则在指定平台代码全部跑到 reject 分支里执行,如果把 === 改成 == 则运行结果就正确了。

问题严重性:

由于微信小程序今天刚上线,从我掌握的情况来看,好多信微信小程序沦陷。而且这个问题较隐蔽,很多小程序可能还没发现。我们是因为导致页面不显示,很容易就发现问题。

2 回复

statusCode 在IOS和Android下一个是number类型,一个是string类型,我也采坑了

__更正补充 __是否必现:

在特定平台上,比较 wx.request 返回值里的 statusCode 时必现。其他情况还没观察到错误现象。

回到顶部