两者之间有区别吗?

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通常与等待连用.通常,如果您不打算在函数中声明等待,就不需要使用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();
    },[])

这最大限度地减少了进入"回调地狱"的机会,因为异步函数可以以同步方式编写,这取决于您的喜好,它更直观,并允许您直接从已声明的函数返回结果.

但是,当您不需要声明的函数的结果时,.then.catch子句确实会派上用场,而且有时编写起来会更快.对于大多数开发人员来说,这归根结底是个人喜好,尽管如果你在云基础设施中开发,并使用AWS Lambda个函数,async/await变得更加必要,因为云开发的事件驱动型和功能性本质,在这种情况下,你不能真正轻松地保持状态.

Javascript相关问答推荐

不渲染具有HTML参数的React元素

如何将拖放功能添加到我已自定义为图像的文件输入HTML标签中?

RxJS setTimeout操作符等效

materialized - activeIndex返回-1

fs. writeFile()vs fs.writeFile()vs fs.appendFile()

使用JavaScript重新排序行

更改JSON中使用AJAX返回的图像的路径

显示图—如何在图例项上添加删除线效果?

XSLT处理器未运行

使用Google API无法进行Web抓取

覆盖TypeScrip中的Lit-Element子类的属性类型

本地库中的chartjs-4.4.2和chartjs-plugin-注解

如何在FastAPI中为通过file:/URL加载的本地HTML文件启用CORS?

为什么我的按钮没有从&q;1更改为&q;X&q;?

在JS中动态创建对象,并将其追加到HTML表中

Next.js中的服务器端组件列表筛选

将相关数据组合到两个不同的数组中

如何通过Axios在GraphQL查询中发送数组

输入数据覆盖JSON文件

使用Java脚本在div中创建新的span标记