我想等到useEffect中的所有axio都完成。
使用效果:
useEffect(() => {
async function getHomePageContent() {
await HomePageServices.getSliderContent().then((response) => {
setSliderProduct(response.data);
});
await HomePageServices.getRecommendedProducts().then((response) => {
setRecommendedProducts(response.data);
});
await HomePageServices.getMostOrderProducts().then((response) => {
setMostOrderProducts(response.data);
});
await HomePageServices.getMostRatedProducts().then((response) => {
setMostRatedProducts(response.data);
});
}
getHomePageContent().catch((error) => {
console.log(error)
});
}, []);
班级:
class HomePageServices{
async getSliderContent(){
return await axios.get(baseURL+"/slider")
}
async getMostRatedProducts(){
return await axios.get(baseURL+"/mostRatedProducts")
}
async getMostOrderProducts(){
return await axios.get(baseURL+"/mostOrderProduct")
}
async getRecommendedProducts(){
return await axios.get(baseURL+"/recommendedProduct")
}
}
有人能给我解释一下如何等待所有 axios 结束,如果一个 axios 失败了,如何找出是哪一个 axios ?
1条答案
按热度按时间unftdfkk1#
尝试使用
Promise.allSettled()
,它接受一个可迭代(例如数组)的承诺,并解析为每个承诺的结果数组。结果表示为具有
status
键的对象,该键可以是rejected
或fulfilled
。对象的第二个键是包含解析值的value
,或者是reason
(如果承诺被拒绝)。这样,useEffect中的代码可能如下所示: