除非在setTimeout中,否则serviceWorker.ready永远不会解析

时间:2017-12-01 02:41:30

标签: service-worker domready background-sync

在页面的domready事件中,我设置了一个事件监听器,用于在我的网站页面(离线时)设置后台同步事件的按钮,但即使服务工作者已加载已经在之前的页面访问中,这行代码永远不会解决承诺,它的状态保持"待定"下去。

navigator.serviceWorker.ready.then(function (sw) {
    $('#elt').on('click', function () {
         sw.sync.register('contact-form-submission');

因为我知道在表单完成之前不需要设置同步事件,所以我尝试将此代码包装在3秒的setTimeout()中,这很有效!我的问题是为什么会出现这种情况,我还没有找到其他任何人说明。在第一次加载页面时,.ready事件将无法使用。洞察力很高兴。

0 个答案:

没有答案