Есть такой код
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link
href="https://unpkg.com/gridjs/dist/theme/mermaid.min.css"
rel="stylesheet"
/>
</head>
<body>
<div id="wrapper"></div>
<script src="https://unpkg.com/gridjs/dist/gridjs.umd.js"></script>
<script src="index.js"></script>
</body>
</html>
JS
const table = new gridjs.Grid({
columns: ["Code", "Flag", "Name", "Capital", "Population"],
data: []
}).render(document.getElementById("wrapper"));
async function printCountry() {
let country = prompt('Enter the name of the country you want to compare')
const [aj] = await fetch(`https://restcountries.com/v3.1/name/${country}`)
.then(response => {
return response.json()
})
console.log(aj)
const tableMassive = [];
tableMassive.push(aj.altSpellings[0])
tableMassive.push(aj.flags.png)
tableMassive.push(aj.capital[0])
tableMassive.push(aj.popultaion)
table.data.push(tableMassive)
alert(tableMassive)
}
printCountry()
printCountry()
Код должен спрашивать у пользователя 2 страны, а потом с помощью api берётся информация про эти страны. Далее информация должна идти в таблицу
И вроде все хорошо, но открытии страницы, в таблице ничего нет, а в консоль выводит ошибку - Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'push')
Как я понял, это связанно с тем, что я пытаюсь впихнуть что-то туда, чего на данный момент - нет. Скорее всего это из-за того, что функция printCountry() - асинхронна.
Как мне изменить код, чтобы исправить ошибку?