then 返回的是promise,为什么用箭头函数接还要用async呢

来源:3-1 用 JSX 列表渲染开发工程列表页面

weixin_慕哥5081270

2022-06-01

写回答

1回答

粉墨登场

2022-07-07

因为fetch函数返回的是是一个 http 响应,并不是真正的数据,所以还需要异步等待转化为 json 数据。就是说有两个 promise。

const fetchData = async () => {
    const response = await fetch('....');
    if (response.ok) {
    /*
    这里我们通过网络获取一个 JSON 文件并将其打印到控制台。最简单的用法是只提供一个参数用来指明想 fetch() 到的资源路径,然后返回一个包含响应结果的 promise(一个 Response 对象)。
当然它只是一个 HTTP 响应,而不是真的 JSON。为了获取 JSON 的内容,我们需要使用 json() 方法(该方法返回一个将响应 body 解析成 JSON 的 promise)。
 -- 摘自 MDN
    */
         const data = await response.json();
    };
};


1
0

React17+Hook+TS4 优质实践,仿 Jira 企业级项目

解锁 React17 高阶用法,轻松应对大型复杂长周期项目

2691 学习 · 1236 问题

查看课程