我有以下 Eel 的 Python 代碼import eel, urllib.request@eel.exposedef python_function(): response = urllib.request.urlopen('http://google.com').read() return(response)eel.init('web')eel.start('index.html', port=0)現(xiàn)在,當我從 JavaScript 中調(diào)用它時async function jsFunction() { let result = await eel.python_function()(); return result;}我總是得到null。當我print(python_function())從 Python 調(diào)用時,我得到了預(yù)期的 HTML 字符串。測試時,JavaScript 在到達 URL 之前返回 null。我認為 Python 阻止了代碼。我需要重新實現(xiàn)一個塊嗎?從 返回一個字符串python_function將得到 中的實際字符串jsFunction。
1 回答

繁華開滿天機
TA貢獻1816條經(jīng)驗 獲得超4個贊
嘗試這個:
@eel.expose
def python_function():
? ? response = urllib.request.urlopen('http://google.com').read()
? ? return response.decode('latin1')
差別就是response.decode('latin1')
回報。
在Eel的Python層,必須根據(jù)Python的JSON編碼器返回一個可序列化的對象,而返回的原始二進制字符串read()
是不可序列化的。
添加回答
舉報
0/150
提交
取消