1: createCacheManager的mode设置为always时,开发工具报错
2:createCacheManager的mode设置为weakNetwork时:开发工具模拟断网情况,没有触发打印日志
3: 代码片段
// 创建缓存管理器
const cacheManager = wx.createCacheManager({
origin: 'https://test.com/',
mode: 'weakNetwork'
})
// 添加请求规则
cacheManager.addRule(/https:\/\/(?:.*)/ig) // 表示所有 https 请求都匹配
console.error('默认在弱网时调用 wx.request 即会触发');
cacheManager.on('enterWeakNetwork', () => {
console.error('enterWeakNetwork')
})
cacheManager.on('exitWeakNetwork', () => {
console.error('exitWeakNetwork')
})
// 监听符合规则的 wx.request 请求,默认在弱网时调用 wx.request 即会触发
cacheManager.on('request', evt => {
console.error('弱网时调用 ');
return new Promise((resolve, reject) => {
// 匹配是否存在缓存
const matchRes = cacheManager.match(evt)
if (matchRes && matchRes.data) {
// 使用缓存返回
resolve(matchRes.data)
} else {
// 没有匹配到缓存
reject({errMsg: `catch not found: ${evt.url}`})
}
})
})
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
// 创建缓存管理器
const cacheManager = wx.createCacheManager({
origin: 'https://test.com/',
mode: 'weakNetwork'
})
// 添加请求规则
cacheManager.addRule(/https:\/\/(?:.*)/ig) // 表示所有 https 请求都匹配
console.error('默认在弱网时调用 wx.request 即会触发');
cacheManager.on('enterWeakNetwork', () => {
console.error('enterWeakNetwork')
})
cacheManager.on('exitWeakNetwork', () => {
console.error('exitWeakNetwork')
})
// 监听符合规则的 wx.request 请求,默认在弱网时调用 wx.request 即会触发
cacheManager.on('request', evt => { console.error('弱网时调用 ');
return new Promise((resolve, reject) => {
// 匹配是否存在缓存
const matchRes = cacheManager.match(evt)
if (matchRes && matchRes.data) {
// 使用缓存返回
resolve(matchRes.data)
} else {
// 没有匹配到缓存
reject({errMsg: `catch not found: ${evt.url}`})
}
})
})