onRequestEnd
监听请求的生命周期,并在一个请求生命周期结束时回调。
优先使用 wx.request
拦截,如果无法使用则使用 jgb.intercept
拦截。
如果无法使用wx.request
也没有使用 JGB
框架,则需要自己实现请求拦截, 参考拦截 wx.request
:
import { MonitorRequest, hook } from '@tuhu/mp-monitor'
let oldRequest = wx.request;
Object.defineProperty(wx, "request", {
configurable: true,
get() {
return (opts: IRequestOptions) => {
const monitorRequest = new MonitorRequest();
const { url } = opts;
if (hostblackbox.some(burl => url.includes(burl))) {
return oldRequest(opts);
}
monitorRequest.collectFromRquestOptions(opts);
hook(opts, "success", res => {
monitorRequest.collectFromResponse(res);
});
hook(opts, "fail", res => {
monitorRequest.collectFromResponse(res);
});
hook(opts, "complete", () => {
const data = monitorRequest.processData();
sensors.track('min_performance_monitor', data);
});
return oldRequest(opts);
};
},
set(value) {
oldRequest = value;
}
});