Возврат массива из Python в Javascript

Я пытался вернуть массив данных из функции python в Javascript. Я использую модуль Python eel. Функция python с легкостью возвращает строку, но когда я попытался вернуть объект массива, она ничего не вернула в javascript.

Вот функция Python:

@eel.expose

def get_list_data(column_name):
    tree = ET.parse('resources.xml')
    root = tree.getroot()

    column_list_data = []

    for child in root.findall('column'):
        if child.get('name') == column_name:
            for grandchild in child:
                column_list_data.append(grandchild.text)
    return(column_list_data)

А вот и функция javascript.

function getListData(){
    let retData = eel.get_list_data("Response")();
    console.log(retData);
}

getListData();

Вот журнал консоли.

Promise
__proto__: Promise
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: Array(0)

1 ответ

Это потому, что retData кажется обещанием. Пожалуйста, прочтите следующее ( MDN Promise) для более глубокого понимания обещаний в javascript.

Обещание выполняется асинхронно. Код ниже "then-callback" выполняется в случае успешного выполнения обещания. Чтобы дать вам кое-что для начала:

function getListData(){
    let retData = eel.get_list_data("Response")()
       .then(retData => {
           console.log(retData);
       })
       .catch(e => console.log(e));
}
Другие вопросы по тегам