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

尝试从 JS 上的 API 读取日期

尝试从 JS 上的 API 读取日期

慕沐林林 2022-09-23 21:36:53

我试图从我居住的城市获得假期,但每次我试图指定字段时,我都会得到未定义的语句。


function getHolidays() {

    fetch('https://api.calendario.com.br/?json=true&ano=2020&ibge=3550308&token=bHVjYXNsdm81M0BnbWFpbC5jb20maGFzaD03ODE3NDM2MA')

        .then(function (response) {

            return response.json()

        })

        .then(function (verify) {

            const test = verify

            console.log(test.date)

        })

}


console.log(getHolidays())


查看完整描述

3 回答

?
弑天下

TA贡献1464条经验 获得超7个赞

首先,该 API 返回一个对象数组。您可以使用 map 方法迭代数组,例如:

const dates = verify.map(item => item.date);

另外,重要的是要提到获取是一个承诺。如果要在函数外部访问其结果,则必须对其进行处理。getHolidays

function getHolidays() {

    return fetch('https://api.calendario.com.br/?json=true&ano=2020&ibge=3550308&token=bHVjYXNsdm81M0BnbWFpbC5jb20maGFzaD03ODE3NDM2MA')

        .then(function (response) {

            return response.json()

        })

        .then(function (verify) {

            return verify.map(item => item.date)

        })

}


getHolidays().then(function (dates) {

  console.log(dates);

});


查看完整回答
反对 回复 6天前
?
波斯汪

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

我认为你在承诺对象实现之前就回来了。例如,如果您要将第一个“返回”替换为另一个控制台日志,则可能会得到挂起的结果


查看完整回答
反对 回复 6天前
?
汪汪一只猫

TA贡献1550条经验 获得超8个赞

如前所述@EliasSoares,您正在尝试访问数组上的对象属性。您需要索引到某个对象中才能获取该属性(该属性是 )。date

像这样的东西应该会有所帮助:

function getHolidays() {

  fetch(

      "https://api.calendario.com.br/?json=true&ano=2020&ibge=3550308&token=bHVjYXNsdm81M0BnbWFpbC5jb20maGFzaD03ODE3NDM2MA"

    )

    .then(function(response) {

      return response.json();

    })

    .then(function(data) {

      console.log({ holidays: data });

      document.getElementById("results").innerHTML = `<h1>Results:</h1>${JSON.stringify(data, null, 2)}`;

    });

}


getHolidays()

Open your console

<pre id="results" />


查看完整回答
反对 回复 6天前
  • 3 回答
  • 0 关注
  • 10 浏览
慕课专栏
更多

添加回答

举报

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