Возвращение массива от Python до Javascript - PullRequest
0 голосов
/ 08 апреля 2020

Я пытался вернуть массив данных из функции python в Javascript. Я использую модуль eel python. Функция 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 Ответ

0 голосов
/ 08 апреля 2020

То есть, потому что 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));
}
...