【发布时间】:2016-01-12 11:32:35
【问题描述】:
我有一个 for 循环调用以下函数两次:
var getJSON = function (url, callback) {
var http = require('https');
http.get(url, function (res) {
var body = '';
res.on('data', function (chunk) {
body += chunk;
});
res.on('end', function () {
//console.log("Got response: ", body);
var response = JSON.parse(body);
return callback(response);
});
}).on('error', function (e) {
console.log("Got error: ", e);
return callback(-1);
});
}
url参数第一次是“https://api.bitok.com/open_api/btc_eur/ticker”,第二次是“https://api.bitok.com/open_api/btc_usd/ticker”。回调参数只是程序应该去的另一个函数。问题是,如果它只在第一次工作(无论两个端点中的哪一个),第二次下降并且不打印错误,不知道该怎么办。
编辑
这是我调用函数的for循环,我也看不懂哪里不对,“exch.pairs_list.length”等于2。
for (var i = 0; i < exch.pairs_list.length; i++) {
getJSON(url, callback);
}
没有报错,问题是回调函数,只调用了一次,应该是两次。
【问题讨论】:
-
您必须提供更多详细信息和问题的实际可重现示例。使用提供的 URL 添加两个对 getJSON 的调用就像一个魅力,使用看起来像相关值的正确调用回调。问题不是出在您的调用代码中吗?另外,当您说它“失败”时,究竟会发生什么?你有什么错误吗?
-
与@jcaron 相同,您所描述的/不可复制的内容绝对没有问题。此处需要更多信息或代码。
-
请提供Minimal, Complete, and Verifiable example。您的循环调用
getVolume,这与您之前提供的getJSON调用不同。同时提供this.asisgnToList的代码。您是否在getJSON和getVolume函数以及回调中添加了跟踪,以查看哪些部分被执行?