【问题标题】:Javascript API RequestsJavascript API 请求
【发布时间】:2018-07-19 06:13:22
【问题描述】:

我在理解如何在 javascript 中解决这个问题时遇到了一个小问题。下面是问题和细节。欢迎任何帮助。

问题

Given 是一个有两个端点的服务器后端:/GetLocalPressReleases 和 /GetGlobalPressReleases。可以使用简单的无参数 GET 请求访问两个端点,并将返回 JSON 文档。 JSON 文档的格式如下所示。请编写将调用两个端点的 JavaScript 代码并创建一个 JavaScript 数组,该数组包含来自两个源的信息,并添加一个“源”字段,该字段指示信息的来源以供进一步处理。该数组应按时间戳降序排序。可视化输出。

代码

var exampleResultArray = [
{
"timestamp": 150892000,
"headline": "New version of the product announced.",
"link": "http://example.url/new_version",
"authorName": "Paul Abbot",
"authorImageUrl": "http://example.url/authors/abbot.jpg"
},

{
"timestamp": 150892600,
"headline": "Even newer version of the product announced.",
"link": "http://example.url/newer_version",
"authorName": "Lisa Halliday",
"authorImageUrl": "http://example.url/authors/halliday.jpg"
}

];

非常感谢任何有关如何解决此问题的帮助。谢谢各位。

【问题讨论】:

标签: javascript jquery json ajax vue.js


【解决方案1】:

您需要的是一个嵌套回调,以及一个用于存储来自两个端点的数据的全局数组。

您可以使用 jQuery.ajax 或 Axios。如果没有,请使用 fetch 或 XMLHttpRequest。

var arr = [];
$.ajax('/GetLocalPressReleases',{
    success: (data)=> {
        arr = data.map( x=> x);
        $.ajax('/GetGlobalPressReleases',{
            success : (innerData) => {
               for (const e of innerData){ arr.push(e);  }
               // Do visualizations here
            }
        })
    }
})

当然,您最好在嵌套回调的每个级别上捕获错误并相应地处理它们。为了避免回调地狱,你可以使用 promises (.done(...).fail(...) in jQuery or .then(...).catch(...) in Axios)

【讨论】:

  • “可视化输出”究竟是什么意思?这是否意味着在模板 HTML 中可视化结果?我只需要澄清一下。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-12
  • 1970-01-01
  • 2018-06-07
  • 2018-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多