【问题标题】:NodeJS calling function twice generates errorNodeJS调用函数两次产生错误
【发布时间】: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 的代码。您是否在 getJSONgetVolume 函数以及回调中添加了跟踪,以查看哪些部分被执行?

标签: json node.js api


【解决方案1】:

对不起,伙计们,这个错误非常愚蠢,我试图在真正收到 API 响应之前打印结果。

【讨论】:

  • 那么请帮助我们保持干净并删除您的旧答案(它对其他用户没有未来价值)
  • @Julian,它已被删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-16
  • 1970-01-01
  • 1970-01-01
  • 2018-07-17
相关资源
最近更新 更多