Доступ к indexedDB в ServiceWorker. Состояние гонки

Существует не так много примеров, демонстрирующих indexedDB в ServiceWorker, но все, что я видел, были структурированы следующим образом:

const request = indexedDB.open( 'myDB', 1 );
var db;

request.onupgradeneeded = ...

request.onsuccess = function() {
    db = this.result; // Average 8ms
};


self.onfetch = function(e)
{
    const requestURL = new URL( e.request.url ),
    path = requestURL.pathname;

    if( path === '/test' )
    {
        const response = new Promise( function( resolve )
        {
            console.log( performance.now(), typeof db ); // Average 15ms

            db.transaction( 'cache' ).objectStore( 'cache' ).get( 'test' ).onsuccess = function()
            {
                resolve( new Response( this.result, { headers: { 'content-type':'text/plain' } } ) );
            }
        });

        e.respondWith( response );
    }
}

Может ли это привести к сбою при запуске ServiceWorker, и если да, то каков надежный способ доступа к indexedDB в ServiceWorker?

Ответы на вопрос(3)

Ваш ответ на вопрос