0

更新と後続のフェッチ呼び出しを呼び出す同期要求と次の後続のフェッチ要求を連鎖させる方法はありますか? 現在、フェッチ呼び出し 'jsonGetMyData' が呼び出されて古いデータが返されるのを見ていますが、デバッガーでこの呼び出しを一時停止すると、更新されたデータが返されます。したがって、フェッチ呼び出しの前にサービス ワーカーの更新が行われていないようです。その場合、サービス ワーカーの更新が最初に行われ、フェッチのみが呼び出されるように制御するにはどうすればよいでしょうか?

お知らせ下さい。

以下は呼び出し部分です。

   if ('serviceWorker' in navigator && 'SyncManager' in window) {
    navigator.serviceWorker.ready
        .then(function(sw) {
        writeData('myStore', dataObject)
        .then(function() {
            return sw.sync.register('case0-sync');
        })
        .then(function(){
            debugger;
            this.jsonGetMyData(this.get("dataId"));
        })
        .catch(function(err) {
            console.log(err);
        }); 
    });
}

以下は Service Worker コードのサンプルです。

 self.addEventListener("sync", function(event) {
    console.log("Background Syncing started...");

  if(event.tag === 'case0-sync'){
     //my update post call goes here

  }else if(event.tag === 'case1-sync'){
   
  }else if(event.tag === 'case2-sync'){
    
  }else if(event.tag === 'case3-sync'){
   
  }else if(event.tag === 'case4-sync'){
    
  }
});

self.addEventListener('fetch', function (event) {
  if (event.request.url.indexOf('jsonGetMyData') > -1
   event.respondWith(
               fetch(event.request).then(function(resp){
                return resp;
               }).catch(function(err){
        })
        );
  }
});
4

0 に答える 0