javascript - 忽略 SetInterval 函数期间的错误并继续

标签 javascript node.js

我有一个非常简单的 Javascript 程序在 Node 中运行,它每分钟从网站 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)

我该怎么做?

最佳答案

它会停止,因为您从 catch block 中返回。删除return关键字,它将继续运行。

var getData = function() {
  try {
    // Retrieve and parse data
    throw Error("error");
    console.log("The parsed data");
  } catch(error) {
    console.error(error);
  }
}

setInterval(getData, 1000);

关于javascript - 忽略 SetInterval 函数期间的错误并继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48064448/

相关文章:

javascript - Django 在 javascript 中的模板标签

javascript - 将属性附加到 Javascript 中的冒泡事件对象

javascript - PHP 指向错误 404 不起作用

node.js - 我可以使用 Dropbox API v2 在我的网络应用程序中实现云存储吗?

node.js - 在dokku中运行的phoenix项目中使用sass

javascript - 将对象从 JavaScript 传递到 C#

javascript - 如何仅在动画一完成后才运行动画二?

node.js - 如何使用 Kraken.js 为 Bookshelf 配置 Knex

javascript - TypeScript接口(interface)签名 "(): string"

javascript - Mongoose 增量值不起作用