En mi barra lateral, hay dos botones button1 y button2 . Lo que quiero es que, después de hacer clic en el botón 1, button1 myfunction() se ejecutará simultáneamente, el button2 está deshabilitado. Cuando myfunction() finaliza, button2 cambia al estado habilitado. Use el siguiente código:
$(document).ready(function(){ $("#button1").click(function(){ google.script.run.myfunction(); $("#button1").attr("disabled",true); $('#button2').attr("disabled", false); }); }); }); Sin embargo, cuando se hace clic en el button1 , se ejecuta la función myfunction() y también se habilita el button2 . Esto hace que el usuario haga clic en el botón button2 mientras se ejecuta la función, lo que genera un error. ¿Alguien puede ayudarme? Gracias por adelantado.
Esto parece un trabajo para Promises . Use async-await para lograr esto.
google.script.run.myfunction debe ser una llamada asíncrona.
Deshabilite su botón antes de ejecutar la función. Luego, en la segunda línea, esperamos el resultado de myfunction ejecución de mi función. Más tarde, alternamos el atributo disabled .
$(document).ready(function(){ $("#button1").click(async function(){ $("#button1").attr("disabled",true); let newVal = await google.script.run.myfunction(); $('#button2').attr("disabled", false); }); }); });