为了账号安全,请及时绑定邮箱和手机立即绑定

fetch第一层回调的结果response是什么,为什么返回的数据是在第二层then里面

fetch第一层回调的结果response是什么,为什么返回的数据是在第二层then里面

达令说 2019-03-20 22:15:16
比如fetch(url).then(function(response) {  return response.json();}).then(function(data) {  console.log(data);}).catch(function(e) {  console.log("Oops, error");});一般我们想要的数据在第二层then里面,那第一层then的respose有什么用,为什么还要return?里面是什么信息?状态码?
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

response是Response对象,包含Header、status、statusText等属性。要获得具体数据需要使用.json(用于JSON)、.text(用于文本)、.formData(用于FormData对象)等方法。
至于为什么需要return,因为Response.json返回的是一个Promise,所以只能先return,再在下一层处理。

fetch(url).

    then(function(response) {

        // 打印响应头

        console.log(response.headers);

        //打印状态码

        console.log(response.status);

        //打印状态信息

        console.log(response.statusText);

        // 使用.json方法获得具体返回数据,再下一层Promise里处理

        return response.json();

    })

    .then(function(data) { console.log(data); })

    .catch(function(e) { console.log("Oops, eror");


查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 853 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信