当前位置: 首页 > 知识库问答 >
问题:

如何使用提取从api获取数据

司空高义
2023-03-14

我正在创建一个fetchBill函数。分配https://randomapi.com/api/006b08a801d82d0c9824dcfdfdfa3b3c到一个api变量。它使用浏览器的fetch函数向api发出HTTP请求。它在一个函数中使用箭头函数。然后调用fetch函数,并在将其转换为JSON后返回响应。使用另一个。然后调用第一个函数,该函数将JSON数据传递给displayCartTotal函数。最后,它处理可能发生的错误,例如在控制台中显示警告消息。

我已经定义了挑战所需的displayCartTotal函数。已经被证实是正确的。我还定义了finchBill函数,它正在返回一个promise。在promise中,promise状态是“解决的”,promise值是一个数组。我没有得到任何错误,但这似乎并不能解决挑战的问题。

    const displayCartTotal = ({results}) => results;

    const fetchBill = () => {
    const api = 
    "https://randomapi.com/api/006b08a801d82d0c9824dcfdfdfa3b3c";
    const results = fetch(api)
        .then(res => res.json())
        .then(data => displayCartTotal(data))
        .catch(err => console.log(`Warning!!! Error fetching data!!! 
        Error ${err}`));
        return results;
};

通过调用displayCartTotal函数,fetchBill函数应该返回fetch请求返回的json对象的results属性。我相信返回的是promiseValue,而不是http请求的全部promise。

共有3个答案

巴洲
2023-03-14
const displayCartTotal = ({results}) => results;

const fetchBill = () => {
   const api = "https://randomapi.com/api/006b08a801d82d0c9824dcfdfdfa3b3c";
   fetch(api)
   .then(response => response.json())
   .then(data => displayCartTotal(data))
   .catch(err => console.log(err));
};
谷梁嘉运
2023-03-14

在您的情况下,读取返回没有完全填充的promise。在此类型中实现读取。

fetch('https://randomapi.com/api/006b08a801d82d0c9824dcfdfdfa3b3c')
    .then((resp) => {
        if (!resp.ok) {
            if (resp.status >= 400 && resp.status < 500) {
                return resp.json().then((data) => {
                    let err = { errorMessage: data.message };
                    throw err;
                });
            } else {
                let err = { errorMessage: 'Please try again in some time, Server Error!' };
                throw err;
            }
        }
        return resp.json();
    })
    .then((data) => {
        console.log(data.results[0].buyerCountry);
        console.log(data.results[0].itemsInCart);
    })
赵奕
2023-03-14

进程失败的一个可能原因是,Javascript在tge promise之后继续,并在promise进程完成之前返回结果var

解决此问题的最简单方法是将thw return添加到then中:

const displayCartTotal = ({results}) => results;

const fetchBill = () => {
const api = 
"https://randomapi.com/api/006b08a801d82d0c9824dcfdfdfa3b3c";
const results = fetch(api)
    .then(res => res.json())
    .then(data => displayCartTotal(data))
   .then(return results;)
    .catch(err => console.log(`Warning!!! Error fetching data!!! 
    Error ${err}`));


};
 类似资料:
  • 当我尝试使用Angularjs$http.get()访问wiki api时,出现了CORS问题。这是我的密码 $http.get('http://en.wikipedia.org/w/api.php?action=query 这是错误信息 无法加载XMLHttpRequesthttps://en.wikipedia.org/w/api.php?action=query

  • 根据节点获取文档节点获取 我们可以这样得到响应状态 为了得到数据 我有一个场景,需要从响应返回JSON数据和状态。我试着这样用 但是 安慰日志(jsonData.status) 不会返回状态。如何获取状态和输出数据

  • 我有一个要求显示以下信息从播放商店管理面板。 用户评论/评论 应用程序安装/卸载(每周/每月/每季度) Android生命周期(崩溃、Anr、性能) 简而言之,我需要在我的

  • 问题内容: 我正在尝试从subreddit提要中提取图像发布URL,并在页面上呈现元素。 一段时间以来,我一直在尝试从jQuery Docs中窃取 Flickr示例,但我一无所获。 有问题的代码: 在体内,我具有以下元素: 我了解我需要使用JSONP,但不确定如何使用。有人可以指出我正确的方向吗? 问题答案: 您使用的网址错误。用这个: 编辑: 基于您的评论中的小提琴的工作示例。 你应该使用而不是

  • 问题内容: 这旨在作为一般参考问题和答案,涵盖许多永无止境的 “如何访问JSON中的数据?” 问题。它是在这里处理在PHP中解码JSON和访问结果的广泛基础知识。 我有JSON: 如何在PHP中对此进行解码并访问结果数据? 问题答案: 介绍 首先,您有一个字符串。JSON不是数组,对象或数据结构。JSON是基于文本的序列化格式,因此是花哨的字符串,但仍然只是字符串。使用解码PHP。 在其中您可能会

  • 例如,我有一个来自URL的分页响应https://swapi.dev/api/people . 此endpoint每页仅提供9个人。我想在Spring Boot应用程序中使用WebClient收集所有星球大战角色,但我不知道如何使用WebClient爬过页面并以非阻塞方式一次检索所有人。有人知道如何做到这一点吗?谢谢您的帮助。