如何使用访存从api获取数据

时间:2019-07-13 05:10:45

标签: javascript json http promise fetch

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

我已经根据挑战定义了displayCartTotal函数。并且已被验证是正确的。 我还定义了fetchBill函数,它正在返回一个Promise。在promise中,promiseStatus是“ resolved”的,promiseValue是一个Array。我没有收到任何错误,但这似乎并不能解决挑战的问题。

    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请求中的全部诺言。

4 个答案:

答案 0 :(得分:0)

该过程失败的可能原因是Java在tge promise之后继续运行,并在promise过程完成之前返回result var

解决此问题的最简单方法是将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}`));


};

答案 1 :(得分:0)

在您的情况下,获取操作会返回未满的承诺。以这种类型实现提取。

await getIncome()

答案 2 :(得分:0)

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));
};

答案 3 :(得分:0)

plyr