在SetInterval函数期间忽略错误并继续

时间:2018-01-02 16:25:46

标签: javascript node.js

我在节点中运行一个非常简单的Javascript程序,每分钟从网站API提取数据,解析它,并在控制台上显示它。

结构如下所示:(更新

var getData = function() {
  try {
    http.get(
      {"host": "api.coindesk.com", "path": "/v1/bpi/currentprice.json"},
      function(response) {
        var body = '';
        response.on('data', function(d) {
          body += d;
        });
        response.on('end', function() {
          var parsed = JSON.parse(body);
          console.log(parsed.time.updatedISO + "   :::   $" + parsed.bpi.USD.rate_float);
        });
      }
    );
  } catch(error) {
    // Don't care if it fails, just wait and get the next minutes data
    console.log(error);
  }
}

SetInterval(getData, 60000);

当由于连接或解析错误而引发错误时,整个程序停止,我需要它忽略该错误并在60秒内再次尝试。如果我错过了一分钟的数据,我就不在乎了,我只需要它继续运行。

示例错误:

events.js:136
      throw er; // Unhandled 'error' event
      ^

Error: getaddrinfo ENOTFOUND api.coindesk.com api.coindesk.com:80
    at errnoException (dns.js:55:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:97:26)

我该怎么做?

1 个答案:

答案 0 :(得分:1)

它会因TintColor块内的return而停止。删除catch关键字,它将继续运行。



return