首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在reduce / jQuery内调用函数

在reduce / jQuery内调用函数
EN

Stack Overflow用户
提问于 2018-02-10 16:13:07
回答 1查看 143关注 0票数 0

我的网页没有加载。但是,如果我将$(".datacards").append(html)移到displayResults函数中,一切都会正常加载。我只想用reduce将所有的调用减少到一个字符串中,然后再追加一次,就像我下面的代码一样。除了,当我像这样设置它时,它不会加载。任何帮助都将不胜感激。谢谢。

代码语言:javascript
复制
    let streamers = [
  "joweed15",
  "overwatchleague",
  "blizzheroes",
  "freecodecamp",
  "nl_kripp",
  "drdisrespectlive",
  "ryuquezacotl",
  "queenmico",
  "timthetatman",
  "thijshs",
  "lilypichu",
  "arteezy"
];

function getStreamers() {
  // var html = "";
  var channelsAPI = "https://wind-bow.glitch.me/twitch-api/channels/";
  var streamsAPI = "https://wind-bow.glitch.me/twitch-api/streams/";
  var html = streamers.reduce(function(str, streamer) {
    $.getJSON(channelsAPI + streamer, function(data) {
      str += displayResults(
        data.display_name,
        data.name,
        data.logo,
        data.status
      );
    });
  }, "");
  $(".datacards").append(html)
}

function displayResults(display_name, name, logo, status) {
  return  `
    <div class="col-sm-12 col-md-4">
        <div class="card">
        <p class="name">${display_name}</p>
        <div class="circle"><i class="fas fa-circle fa-1x"></i></div>
        <img src="${logo}" class="avatar">
        <p class="status text-center">${status}</h3>
      </div>
    </div>`;
}
EN

回答 1

Stack Overflow用户

发布于 2018-02-10 16:18:52

$.getJSON()返回的是XHR对象,而不是您请求的数据。它也是异步的,这意味着结果将在稍后出现。这就是为什么会有处理数据的回调函数。因此,html将包含一个对象,如果您实际需要从该应用程序接口返回的数据,那么您将以非常不同的方式处理它。仅仅把reduce()放在任何函数调用的前面是做不到你想要的。

当收到新的结果时,你必须执行调用并追加数据。如果你真的想一次获得所有数据,那就有点棘手了,但我不认为你需要这样做。只需将来自displayResults的结果逐个添加即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48718656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档