Imagine una clase de javascript llamada MealAdvisor que realiza un seguimiento de los ingredientes y equipos disponibles y calcula la mejor comida posible que se puede preparar con los recursos disponibles. Tiene métodos que se pueden llamar como:
Suponga que a veces puede llevar tiempo ejecutar las llamadas a métodos del asesor. En lugar de congelar la interfaz de usuario, las llamadas deben ponerse en cola y ejecutarse en orden en segundo plano mientras la interfaz de usuario muestra algún indicador de espera y se pueden agregar nuevas llamadas a la cola. Siempre que el asesor se haya puesto al día y la cola esté vacía, debe informar a la interfaz de usuario para que pueda mostrar un resultado.
¿Cuál es la mejor manera de modificar MealAdvisor para admitir esto? Debe poder usarse en un script de contenido que se agrega a un sitio web en particular usando una extensión de Chrome.