Javascript 错误:已使用的请求对象 我一直在控制台日志中看到这个错误

Javascript 错误:已使用的请求对象 我一直在控制台日志中看到这个错误,javascript,node.js,vue.js,service-worker,Javascript,Node.js,Vue.js,Service Worker,未捕获(承诺中)TypeError:未能对“ServiceWorkerGlobalScope”执行“fetch”:无法使用已使用的请求对象构造请求 我试着换了我的服务人员,但没用 self.addEventListener('install',(event)=>event.waitill(preLoad()); 常量预加载=函数(){ 返回缓存。打开('cc-offline')。然后((缓存)=>{ 返回cache.addAll(['/offline.html','/index.html']);

未捕获(承诺中)TypeError:未能对“ServiceWorkerGlobalScope”执行“fetch”:无法使用已使用的请求对象构造请求

我试着换了我的服务人员,但没用

self.addEventListener('install',(event)=>event.waitill(preLoad());
常量预加载=函数(){
返回缓存。打开('cc-offline')。然后((缓存)=>{
返回cache.addAll(['/offline.html','/index.html']);
});
}
self.addEventListener('fetch',(事件)=>{
event.respondWith(checkResponse(event.request).catch(函数(){
returnFromCache(event.request)
}));
event.waitUntil(addToCache(event.request));
});
const checkResponse=(请求)=>{
返回新承诺((履行、拒绝)=>{
获取(请求)。然后((响应)=>{
(response.status!==404)?完成(响应):拒绝()
},拒绝)
});
};
const addToCache=(请求)=>{
返回缓存。打开('cc-offline')。然后((缓存)=>{
返回获取(请求)。然后((响应)=>{
返回cache.put(请求、响应);
});
});
};
const returnFromCache=(请求)=>{
返回缓存。打开('cc-offline')。然后((缓存)=>{
返回cache.match(请求)。然后((匹配)=>{
返回(!matching | | matching.status==404)?cache.match('offline.html'):匹配
});
});
};

fetch
不允许您两次使用请求,至少在当前版本:)。在
checkResponse
addToCache
中使用相同的请求对象可能就是这种情况。您可以在调用
fetch
之前尝试克隆请求对象,正如这里提到的

我现在得到了这个:
Uncaught(in promise)TypeError:未能在“请求”上执行“clone”:请求正文已被使用
您也无法克隆已被使用的请求<如果已使用响应正文,则code>clone()将抛出一个TypeError。事实上,clone()存在的主要原因是允许对实体对象进行多次使用(当它们仅一次使用时)。