Служебный работник синхронизирует событие немедленно - PullRequest
0 голосов
/ 23 мая 2018

Я использую Chrome 66.0.3359.181 (64-разрядная версия).Я запускаю следующий код:

navigator.serviceWorker.ready
  .then(sw=>{
    addData('sync-posts',post)
    .then(()=>{
      return sw.sync.register('sync-new-posts');
    })
    .then(()=>{
      var snackbarContainer = document.querySelector('#confirmation-toast');
      const data = {message: 'Your post was saved for syncing!'};
      snackbarContainer.MaterialSnackbar.showSnackbar(data);
    })
    .catch(err=>{
      console.log(err);
    });
  })

Однако, даже если я отключил Wi-Fi, он все равно сразу вызывает событие синхронизации.

ОТВЕТ: Я действительно понял это, когда писал егоно так как я не нашел никого другого, отвечающего на этот тип вопросов И это заняло час или около того моего времени, я думал, что отправлю это так или иначе.У меня был включен сетевой адаптер виртуальной машины (для Docker), и это заставляло его пытаться синхронизироваться, даже если это соединение никуда не делось.

Затем я также обнаружил, что при условии, что выдает ошибку из этогоСинхронизировать событие, если это не удалось, он будет повторять синхронизацию.Первоначально я ловил ошибки и просто входил в консоль, но это означало, что синхронизация показала, что она завершена.

...