Javascript 恢复连接时如何使用服务工作者(Workbox)处理AJAX响应
我正在使用Vue CLI 3 PWA插件构建一个PWA,我不知道如何处理脱机时发出的AJAX调用的响应 我所拥有的基本上是来自Workbox文档的示例代码Javascript 恢复连接时如何使用服务工作者(Workbox)处理AJAX响应,javascript,vue.js,service-worker,workbox,background-sync,Javascript,Vue.js,Service Worker,Workbox,Background Sync,我正在使用Vue CLI 3 PWA插件构建一个PWA,我不知道如何处理脱机时发出的AJAX调用的响应 我所拥有的基本上是来自Workbox文档的示例代码 //service-worker.js const queue=new workbox.backgroundSync.queue('CR\u OfflineQueue') self.addEventListener('fetch',(事件)=>{ const promiseChain=fetch(event.request.clone())
//service-worker.js
const queue=new workbox.backgroundSync.queue('CR\u OfflineQueue')
self.addEventListener('fetch',(事件)=>{
const promiseChain=fetch(event.request.clone())
.catch((错误)=>{
console.log('排队事件:',Event.request)
返回queue.addRequest(event.request)
})
事件等待时间(promiseChain)
})
AJAX只是一个基本的Axiosget()
,在加载存储和测试时调用它
请求正在成功重播,但我不知道如何处理它,而且我无法找到使用workbox.backgroundSync.Queue
的示例
就getUsername()
而言,请求失败了,但是如何让调用函数从本质上恢复它停止的位置呢
我认为不需要定期检查请求队列以“手动”重新触发(而不是通过自动重播)。我将如何使用队列类从重播的请求中获取结果并设置username属性?Hi@jreed121,您能找到解决方案吗?您知道如何做到这一点吗?
// store.js
getUsername () {
return axios.get(
'http://localhost:8005/username/',
{
responseType: 'json',
withCredentials: true
})
}
const store = new Vuex.Store({
state: {
username: null
},
mutations: {
test_api (state) {
getUsername()
.then((res) => {
state.username = res.username
})
.catch((err) => {
console.error('getUsername:', err)
})
}
}
})