0

无法使用importScript解决依赖关系serviceWorker推送承诺已解决;有人可以建议更好的方法来得到这个排序吗?`importScript`无法在serviceWorker推送事件之前解决依赖关系

ServiceWorker fetch事件:

var iDB; // Global Variable 
self.addEventListener("fetch", function(e) { 
    self.importScripts("dexie.min.js"); 
    var o = new Dexie('database_name'); 
    o.version(1).stores({ 
     iDBStore: "++id,adspotkey" 
     iDB = o 
    }); 
}); 

服务工作者push事件

self.addEventListener("push", function(e) { 
    e.waitUntil(getDetails().then(function(ex) { 
     try { 
      e = wpSDK.iDB; 
      return e.iDBStore.where("id").above(0).toArray().then(function(ox) { 
       console.log(ox); 
      } 
     })); 
}); 

注:

回答

1

你应该在这样的背景下运行importScripts

self.importScripts("dexie.min.js"); 
var iDB; // Global Variable 
self.addEventListener("fetch", function(e) { 
    var o = new Dexie('database_name'); 
    o.version(1).stores({ 
     iDBStore: "++id,adspotkey" 
     iDB = o 
    }); 
}); 

importScripts是一种同步方法。因此,当您在后台运行此方法时,它将阻止ServiceWorker处于活动状态,直到脚本完全加载。

+0

谢谢特雷斯丁 - 我一定会尝试你的建议! –

相关问题