Мне нужно получить токен, прежде чем я смогу продолжить фоновую синхронизацию, затем я зациклю очередь, создам новый Запрос с токеном, добавленным к заголовкам иотправить его.
Я использую плагин для регистрации данных, представленных в автономном режиме, и он регистрируется под workbox-background-sync
> requests
.Цикл while (entry = await queue.shiftRequest())
, по-видимому, не дает результатов, так как я не могу войти в цикл, поэтому я определенно делаю это неправильно.Должен ли я переместить код из плагина в очередь (так как мне нужно shiftRequest () )?Если так, как мне сделать так, чтобы мой маршрут регистрировал вещи в IndexedDB для фоновой синхронизации?
Это то, что я пытаюсь:
const queue = new workbox.backgroundSync.Queue();
const bgSyncPlugin = new workbox.backgroundSync.Plugin('bgsync', {
onSync: async (q) => {
// this will log
console.log("Background sync started", q);
let entry;
while (entry = await queue.shiftRequest()) {
// this will never appear in the log
console.log("Hurray", entry);
}
}
});
workbox.routing.registerRoute(
new RegExp('/suggestion/post'),
new workbox.strategies.NetworkOnly({
plugins: [bgSyncPlugin]
}),
'POST'
);