今回はEelでPython 関数を叩いて戻り値を受けとる方法、複数戻り値の場合の戻り値の形式について。
目次
Python関数を叩いてJavaScript側で戻り値を受け取るには
Eelは内部でWebSocket介したやり取りをしているため非同期になります。そのため、async/awaitが必要になります。
JavaScript側からPython関数を叩いた場合、Promiseオブジェクトが返ってきます。処理自体を呼び出すために()をもう一つつける必要があります。非同期のためawaitで結果待ちをする必要があります。
@eel.expose
def test_python_func():
return "Test"
async function test() {
let result = await eel.load_labels_from_file()();ひょう
console.log(result); // Testと表示される
}
引数あり + Python関数の戻り値が複数の場合
引数ありの場合はJavaScript側は1つめの()に引数を記載する。
また、複数の戻り値の場合、JavaScript側ではArrayで返ってくる。
@eel.expose
def test_python_func(arg_str1: str, arg_str2: str):
return arg_str1 + arg_str2, arg_str2 + arg_str1
async function test() {
let result = await eel.test_python_func("test1", "test2")();
console.log(result); // Arrayでtest1test2, test2test1が返る
}
EelでVueを使うやり方について他記事にまとめてるのでよかったら見てみてください。
数少ないEel関連の情報色々まとめているのでよかったら見てみてください!