尝试使用Fetch API检索函数中的json信息,然后尝试在另一个函数中使用它们

时间:2018-06-16 18:10:45

标签: javascript json ecmascript-6 promise fetch-api

我需要从一个URL(包含JSON中的信息)中获取一些关于几个对象的信息。 所以我写道:

static fetchObj(){
fetch("http://localhost:1337/objects")
.then(callback => { 
return callback.json();
})
.then(data => {
console.log(data);
});
}

在这里,我可以检索我需要的东西并控制它们以确保。

然后我必须在另一个通过ID找到这些对象的函数中使用这些数据:

static fetchObjById(id) {
      MyClass.fetchObj()
      .then(
          for(var i=0; i<data.id.length; i++){
            if(data[i].id == id)
              console.log("found");
            else
              console.log("not found");
          }
   }

但它根本不起作用..我尝试了几种方法但没有...我希望有人可以帮助我:))

2 个答案:

答案 0 :(得分:1)

powershell需要一个功能。您可以通过此函数的单个参数访问Promise的结果数据,该参数可通过箭头功能轻松完成。

另外,我建议你抛弃显式的for循环并研究声明式编程。与then()类似,在数组上调用then()可让您使用箭头函数访问每个元素。对我来说,这更具可读性。

最后,通过首先声明打印消息应该是什么(使用三元运算符),然后使用该消息调用forEach()一次,可以简化console.log调用。

console.log

答案 1 :(得分:1)

这也是一种查找id的方法。

&#13;
&#13;
var id = 4;
function fetchObjById(data) {
    console.log(data);
    for(var i = 0; i < data.length; i++){
        if(data[i].id === id) {
            console.log('found');
            break;
        }
    }
}

var myData;
fetch('https://jsonplaceholder.typicode.com/users')
  .then(response => response.json())
  .then(data => myData = data)
  .then(() => fetchObjById(myData));
&#13;
&#13;
&#13;