Возврат массива из 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));
}