本文采用Taro框架, 若用其他框架可把Taro换成其他框架对应的全局api即可
import Taro from '@tarojs/taro'
function requetProxy (platformMethod) {
return function (options: Taro.request.Option) {
const _success = options.success
const _fail = options.fail
options.success = function (e) {
_success?.call(this, e)
try {
console.log('success', options.url, e.data)
if (e.statusCode != 200 || e.data.code != 0) {
// 上报逻辑
}
} catch (err) {
console.log('requetProxy success error', err)
}
}
options.fail = function (e) {
_fail?.call(this, e)
try {
console.log('fail', options.url, e.errMsg)
// 上报逻辑
} catch (err) {
console.log('requetProxy fail error', err)
}
}
return platformMethod.call(this, options)
}
}
Taro.request = requetProxy(Taro.request)