Tengo una aplicación principal principal con un botón de inicio que lleva al usuario a la página de inicio de la aplicación principal principal mediante document.location. Mi aplicación principal representa muchas aplicaciones javascript de vainilla en tiempo de ejecución usando mosaicos. Cada mosaico dentro de mi aplicación principal representa la aplicación Vanilla js secundaria que no comparte su contexto con la aplicación principal. Ahora, dentro de la aplicación infantil, el usuario puede iniciar o ejecutar una función que puede demorar entre unos segundos y un minuto (no pregunte por qué, por favor). Dentro de ese tiempo, el usuario puede hacer clic en el botón principal de inicio. Ahora mi pregunta principal es cómo me aseguro de completar la ejecución de la función de mi hijo (que es una promesa) antes de que el padre complete la navegación o incluso inicie la navegación. ¿Hay alguna solución a este problema? Desearía poder cambiar este diseño, pero es una aplicación heredada que no tiene mucho espacio para la innovación.
Una solución que se me ocurre: -
Cuando la aplicación principal inicia la navegación, durante la ejecución de ese evento, agregue la etiqueta de secuencia de comandos a la principal. En esa etiqueta de secuencia de comandos, puedo ejecutar mi código personalizado.