#javascript #python #html #eel
#javascript #python #HTML #eel
Вопрос:
У меня есть скрипт, который компилирует кучу файлов из разных каталогов в один лист xlsx. Я создаю интерфейс для него, чтобы я мог поделиться им со своими коллегами, и, хотя у меня есть инструкции печати по всему моему коду, я хочу получить отзывы о моем графическом интерфейсе.
Мне нужна кнопка для изменения метки во время выполнения кода, это то, что я пробовал:
function getstarted(){
document.getElementById("buttonstart").value="Running...";
eel.myfunc();
document.getElementById("buttonstart").value="Done!";
}
Это, конечно, не работает, поскольку javascript не ожидает завершения обработки моей функции eel, чтобы снова изменить значение.
Есть идеи?
Заранее спасибо
Ответ №1:
Если вы сделаете функцию асинхронной, вы можете попросить дождаться ответа от Eel.
async function getstarted(){
document.getElementById("buttonstart").value="Running...";
await eel.myfunc()();
document.getElementById("buttonstart").value="Done!";
}
Если вы не хотите использовать асинхронный метод, другой вариант — поместить код, который выполняется после, в другой метод, который Eel вызывает по завершении.
function getstarted() {
document.getElementById("buttonstart").value="Running...";
eel.myfunc()(getstarted2);
}
function getstarted2() {
document.getElementById("buttonstart").value="Done!";
}
Комментарии:
1. По какой-то причине метод async не работает, но второй работает идеально. Спасибо!
2. @the_clash_1976 убедитесь, что
eel.myfunc()();
имеет два набора круглых скобок. Добро пожаловать!