ServiceWorkerContainer.ready para un scriptURUR específico?

ServiceWorkerContainer.ready se resuelve en un ServiceWorkerRegistration activo, pero si hay varios trabajadores de servicio en juego (por ejemplo, trabajadores de servicio de cargas de páginas anteriores, registros múltiples dentro de la misma página) hay varios trabajadores de servicio que podría resolver. ¿Cómo puedo asegurarme de que un trabajador de servicio particular maneja eventos de red cuando se ejecuta un fragmento de código?

Es decir, ¿cómo puedo escribir una función?registerReady(scriptURL, options) que se puede usar de la siguiente manera:

registerReady("foo.js").then(function (r) {
    // "foo.js" is active and r.active === navigator.serviceWorker.controller
    fetch("/"); // uses foo.js's "fetch" handler
});

registerReady("bar.js").then(function (r) {
    // "bar.js" is active and r.active === navigator.serviceWorker.controller
    fetch("/"); // use bar.js's "fetch" handler
});

Respuestas a la pregunta(1)

Su respuesta a la pregunta