如何在循环中调用返回JSON的URL

时间:2018-04-26 18:46:00

标签: json node.js asynchronous syntax-error

Keys数组包含1000个项目密钥。

for (var i = 0; i < Keys.length; i++){
    httpRequest("https://hostname/api/issues/projectKeys="+Keys[i]+"?format=jSON",
        function (err, res, body) {
             var jsonObj = JSON.parse(body);
             issue.push(jsonObj.total);
          //   console.log(issue.length);

        }).auth(global.username, global.password);

}

httpRequest中的URL返回JSON。 在我运行此程序时,检索到50-60个密钥数据。 我的程序由于错误而停止。

SyntaxError:位于0的JSON中的意外标记u     在JSON.parse()

是否是由于NodeJS的异步特性? 请帮助如何在循环中调用URL 1000次。

2 个答案:

答案 0 :(得分:2)

  

是否是由于NodeJS的异步性质?

不直接。这可能是由于您的应用程序充斥着您正在使用的任何API,并且您获得了速率限制或其他错误。

您应该查看响应状态代码以确定您的响应是否正常。如果出现错误,您应该记录这些回复。响应中可能有一些文本错误消息。

答案 1 :(得分:0)

Check this,如何正确地在节点中进行API调用。 然后,在进行任何处理之前,一旦从服务器获得响应,请始终执行null / undefined或空白响应检查。