Hola, estoy tratando de esperar a que haga clic en un botón dentro de un método vue3, básicamente quiero hacer clic en un botón para iniciar la función y luego esperar hasta que el usuario haga clic en el botón "confirmar" o "cancelar", estoy usando el desarrollador vue3 CDN (si esa información es útil) Esto es lo que tengo hasta ahora:
<div v-if="hasAccess('FTO') && !selectedPlayerLoading" id="ftosheet-container"> <div class="ftosheet-title noselect">FTO Sheet <span v-if="hasAccess('FTO')" v-on:click='editFTOSheet()' style="float: right;"> <i class="fas fa-edit"></i> </span> </div> <textarea class="ftosheet-text" v-model="selectedPlayer.ftosheet" :readonly="editingFTOSheet === false"> </textarea> <div id="ftobutton-container"> <button v-if="editingFTOSheet" id="saveftobutton">Save FTO Sheet</button> <button v-if="editingFTOSheet" id="cancelftobutton">Cancel</button> </div> </div> OnButtonPress() { Vue.nextTick(function () { return new Promise((resolve) => { const confirm = document.getElementById('saveftobutton') confirm.addEventListener('click', function() { resolve(true); }); const deny = document.getElementById('cancelftobutton') deny.addEventListener('click', function() { resolve(false); }); }); }) }, async editFTOSheet() { this.editingFTOSheet = !this.editingFTOSheet; if (this.editingFTOSheet) { const uneditedSheet = this.selectedPlayer.ftosheet; const buttonPress = await this.OnButtonPress(); console.log(buttonPress); //TODO: Make work with await button press } },Obviamente, debido a que los botones solo se procesan después de hacer clic en el botón "editar", necesito el nextTick, ¿creo? VS Code también me dice que await no tiene ningún efecto aquí. La consola imprime sin definir instantáneamente después de llamar a la función OnButtonPress(). Por favor, hágamelo saber si necesita más información, ¡Gracias!
OnButtonPress() { return new Promise((resolve) => { Vue.nextTick(function () { const confirm = document.getElementById('saveftobutton') confirm.addEventListener('click', function() { resolve(true); }); const deny = document.getElementById('cancelftobutton') deny.addEventListener('click', function() { resolve(false); }); }); }); },Tuve que poner el retorno antes de Vue.nextTick.