【发布时间】:2021-08-07 06:16:32
【问题描述】:
我以为我理解了如何使用 async 和 await 直到我看到下面的代码 sn-p。
因此,电影输入文本框附加了一个 onInput 事件处理函数。其中称为 fetchData 异步函数,该函数使用 await 关键字等待 axios.get 函数的结果。
我的问题是,为什么我们需要让 onInput 函数也异步?我的意思是,fetchData 函数是异步的。这意味着,它将等到 axios.get 被解决,并且执行将暂停,直到 axios.get 被解决。所以当行 const movies = fetchData(event.target.value);执行时,将执行 fetchData 函数,该函数将在 await axios.get 语句处暂停。那么为什么我们需要在调用 fetchData 时使用 await 并使 onInput 异步呢??
const fetchData = async(searchTerm)=>{
const results = await axios.get('http://www.omdbapi.com/', {
params:{
apikey:'d9835cc5',
s: searchTerm
}
});
return results.data.Search;
}
const movieInput = document.querySelector('input');
const onInput = async event => {
const movies = await fetchData(event.target.value);
console.log(movies);
}
movieInput.addEventListener('input', onInput);
【问题讨论】: