Почему eel в JS возвращает ерунду?

Есть очень простой код на eel, который должен передавать в Python значение с input1 и перегонять обратно в JS. Только вот, встретился с проблемой - JS от eel получает полную ерунду:

5f771a03dd6c8211264924.png

Вот вёрстка:
Js
eel.expose(getItem);
function getItem(){
    var input1 = document.getElementById("input1").value;
    return input1;
}

function clicked(){
    let result = eel.plus(getItem());
    let p = document.createElement("p");
    p.innerHTML = result;
    document.getElementById("main").appendChild(p);
}

var elem = document.getElementById("but");
elem.addEventListener("click", clicked);

HTML
<!DOCTYPE html>

<html>
    <head>
        <title>Первая проба JS с Python</title>
        <script type="text/javascript" src="/eel.js"></script>
        <link rel="stylesheet" href="style.css">
    </head>
    <body>
        <div class="main" id="main">
            <input type="text" placeholder="Введите число" id="input1">
            <button id="but">Провести через Python</button>
            <input type="text" placeholder="Получите, распишитесь" id="input2" disabled>
            <script src="js.js"></script>
        </div>
    </body>
</html>

CSS
html, body{
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.main{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.main *{
    margin: 10px;
}


Вот Python:
import eel
eel.init('web')

@eel.expose
def plus(self):
    print(self)
    return self

eel.start('index.html', size=(700, 700), port=500)


Подскажите, пожалуйста, что делать чтобы вернулись правильные данные?
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
@DgDays Автор вопроса
Нашёл ответ что надо сделать так:
async function clicked(){
    let result = await eel.plus(getItem())();
    document.getElementById("input2").value = result;
}


То есть, функция с eel должна быть асинхронной(на сколько я понял), а вот зачем await eel.plus(getItem())() я не додумался, но всё работает)

Также изменил код таким образом, чтобы переменная передавалась во второй input и отображалась)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы