gpt4 book ai didi

javascript - async + axios 还是只是 axios,这就是问题所在

转载 作者:行者123 更新时间:2023-12-05 02:26:32 30 4
gpt4 key购买 nike

有区别吗

useEffect(()=>{
async function fetchData(){
await axios
.get(path, config)
.then(resp=>console.log(resp))
.catch(error=>console.log(error))
}
fetchData();
},[])

&

useEffect(()=>{
axios
.get(path, config)
.then(resp=>console.log(resp))
.catch(error=>console.log(error))
},[])

有比这更推荐的还是比那更贬值的?

就结果而言两者都给出相同的结果,“异步”更新,但除此之外还有什么?

谢谢,

最佳答案

async 通常与 await 结合使用。通常,如果您不打算在函数中声明 await,则无需使用 async。但是,async 使编写异步代码更加简洁。在第一个例子中

useEffect(()=>{
async function fetchData(){
await axios
.get(path, config)
.then(resp=>console.log(resp))
.catch(error=>console.log(error))
}
fetchData();
},[])

.then.catch 子句是多余的,因为您可以轻松地以更简洁的方式重写它:

    useEffect(()=>{
async function fetchData(){
try{
const result = await axios.get(path, config)
console.log(result)
}catch(e){
console.log(e)
}
}
fetchData();
},[])

这最大限度地减少了进入“回调 hell ”的机会,因为异步函数可以用同步方式编写,根据您的喜好,这种方式更直观,并允许您直接从声明的函数返回结果。

但是,当您不需要声明函数的结果时,.then.catch 子句确实会派上用场,并且有时可以更快地编写。对于大多数开发人员来说,这归结为个人偏好,尽管如果您在云基础设施中开发并使用 AWS Lambda 函数,鉴于事件驱动,async/await 变得更加重要,云开发的功能特性,您无法真正轻松地持久化状态。

关于javascript - async + axios 还是只是 axios,这就是问题所在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73740215/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com