我正在使用workbox
PWA工具。如果用户处于脱机状态,我正在使用background-sync
存储我的发帖请求,它将在检测到网络时将其发送到服务器。
当我在离线模式下对其进行测试时,此方法工作正常。但是,当用户在线时,发帖请求将发送两次。
现在我了解到,第一个发布请求是由我的原始提取发送的,该原始提取位于componentDidMount
中,另一个是由服务工作者发送的。
该应用程序建立在create-react-app
平台上
如何防止这种情况?
const queue = new workbox.backgroundSync.Queue('addToForm');
workbox.routing.registerRoute(
new RegExp(/.*DataManagement\/SyncUserData/),
args => {
const promiseChain = fetch(args.event.request.clone())
.catch(err => {
queue.pushRequest({request: args.event.request});
});
args.event.waitUntil(promiseChain);
},
'POST'
);