Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 恢复连接时如何使用服务工作者(Workbox)处理AJAX响应_Javascript_Vue.js_Service Worker_Workbox_Background Sync - Fatal编程技术网

Javascript 恢复连接时如何使用服务工作者(Workbox)处理AJAX响应

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())

我正在使用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())
.catch((错误)=>{
console.log('排队事件:',Event.request)
返回queue.addRequest(event.request)
})
事件等待时间(promiseChain)
})
AJAX只是一个基本的Axios
get()
,在加载存储和测试时调用它

请求正在成功重播,但我不知道如何处理它,而且我无法找到使用
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)
            })
        }
    }
})