Вам понадобится loopThroughListings
, чтобы быть async
, и тогда вы сможете await getListing()
Примерно так:
const axios = require('axios');
// Loop through multiple pages of listings in the API
async function loopThroughListings() {
let listingsExist = true;
// Loop through listings until they don't exist
while (listingsExist) {
const listing = await getListing();
if (listing.length < 1) {
// if listings don't exist, stop the loop
// THIS IS WHERE THE ISSUE IS
console.log("No Listings");
listingsExist = false;
} else {
// if listings do exist, log them to console
console.log(listing);
}
}
}
// Return listing data from API
async function getListing(page) {
try {
const response = await axios.get(`https://mlb19.theshownation.com/apis/listings.json?type=Stadium&page=1}`);
return response.data.listings;
} catch (error) {
console.error(error);
}
}
loopThroughListings();
Лично, поскольку цикл while будетконечно запустить хотя бы один раз, я бы вместо этого использовал do/while
- для меня это делает поток кода более очевидным
do {
const listing = await getListing();
if (listing.length < 1) {
// if listings don't exist, stop the loop
// THIS IS WHERE THE ISSUE IS
console.log("No Listings");
listingsExist = false;
} else {
// if listings do exist, log them to console
console.log(listing);
}
} while(listingsExist);
Но это всего лишь вопрос мнения