只是我想使用fetchin返回 JSON 响应data-source.js,但为什么我不能使用async/awaitinmain.js来等待返回?
我明白,
async/await不会等待回报,因为它在等待一个承诺。但是,我应该怎么做才能让它等待响应呢?
数据源.js
import clubs from './clubs.js';
class DataSource{
static searchClub(keyword) {
const baseUrl = `https://www.thesportsdb.com/api/v1/json/1`;
fetch(`${baseUrl}/searchteams.php?t=${keyword}`)
.then(response => {
return response.json();
})
.then(responseJson => {
if(responseJson.error) {
return responseJson.error;
} else {
return responseJson;
}
})
.catch(error => {
return(error.message);
});
}
}
export default DataSource;
main.js
import DataSource from '../data/data-source.js';
import '../component/club-list.js';
const main = () => {
const searchElement = document.querySelector("search-bar");
const clubListElement = document.querySelector("club-list");
const onButtonSearchClicked = async () => {
try{
const result = await DataSource.searchClub(searchElement.value);
renderResult(result);
} catch (message) {
fallbackResult(message)
}
};
const renderResult = results => {
clubListElement.clubs = results;
};
const fallbackResult = message => {
clubListElement.renderError(message);
};
searchElement.clickEvent = onButtonSearchClicked;
};
export default main;
谢谢您的答复。