Estoy usando React para escribir código para mi complemento de script de aplicaciones. Quiero que handleCancel se ejecute al hacer clic en el botón Cancelar. Ejecuta someAsyncMethod y luego cierra el modal usando google.script.host.close() .
export const SampleCmp = () => { const handleCancel = async () => { await someAsyncMethod(); google.script.host.close(); }; return ( <button onClick={handleCancel} > Cancel </button> ); }; const someAsyncMethod() = async() : Promise<SomeObject> => { }; someAsyncMethod tarda demasiado (~ 5 s) en ejecutarse y quiero que el modal se cierre de inmediato. Si elimino la palabra clave await , someAsyncMethod no se completa con el valor resuelto o se suspende, lo que sospecho que sucede debido a google.script.host.close . ¿Hay alguna forma en que someAsyncMethod pueda continuar en segundo plano pero podamos cerrar el modal de inmediato? Gracias.
AFAIK, no es posible seguir ejecutando el código del lado del cliente (JavaScript) cuando el host (en este caso, el modal) está cerrado. Debe considerar un enfoque diferente, es decir, en lugar de usar un modal, podría usar una barra lateral, manteniéndola abierta hasta que finalice someAsyncMethod .
Tal vez el uso de un complemento de Google Apps Script como una solución completa sea una mala idea y tendrá que repensar la implementación de la solución, es decir, aplicación web + complemento o como extensión de navegador web + complemento.