后台同步重复发布请求

时间:2019-07-05 14:10:14

标签: javascript service-worker create-react-app workbox

我正在使用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'
    );

0 个答案:

没有答案