当没有间隔运行

时间:2016-11-07 18:26:38

标签: node.js request setinterval electron

所以我一直在用电子工作来构建一个cli / gui app。我有一个进度条,需要每隔一段时间运行一次间隔来刷新进度条。最近我们想在詹金斯运行这个,所以进度条刷新80毫秒将是非常烦人的。我添加了一些代码来清除间隔,如果设置了某个环境变量,然后由于某种原因,应用程序在发送http请求后开始挂起。服务器永远不会收到请求,应用程序只会坐在那里。经过大量的调试后,我发现在代码中的任何地方放置一个setInterval(() => { }, 80);(一个在任何时间内做任何事情或什么都不做的事情)可以解决问题。谁看过这个吗?我觉得我疯了!

修改 在请求上设置超时将使请求在超时后失败。

修改

所以我无法向您显示确切的代码,但这里是其中一个请求调用的jist。

return new Promise((resolve, reject) => {
      request.put({
        url: this.buildUrl(armada, '/some-path'),
        body: vars,
        json: true
      }, (err, resp, body) => {
        logger.comment('err "%s"', JSON.stringify(err));
        logger.comment('resp "%s"', JSON.stringify(resp));
        logger.comment('body "%s"', JSON.stringify(body));
        let e = this.handleError(err, resp, body, 'Error getting stuff');
        if (e) { return reject(e); }
        logger.comment('got back body "%s"', body);
        resolve(resp);
      });
    });

然后如果我在某处有间隔,它就不会挂起。如果我不这样做。

我可以将此代码粘贴到我的代码中,一切都开始工作

setInterval(() => { }, 80);

现在这不是一个特定的请求,因为该应用程序提出了很多不同的请求。它所做的任何请求都可以挂起。他们并不总是挂起来。大约十分之一的时间,一切都可以满足个人要求。

0 个答案:

没有答案