【发布时间】:2015-11-16 09:26:00
【问题描述】:
我的程序必须处理大量请求,其中一些请求有时无法获得返回的回调(因为我发送请求的服务器)。我想知道是否有任何方法可以强制请求在一定时间(例如 5 秒)后终止?
request(item.url, function (error, response, html) {})
非常感谢您的帮助。 提前致谢。
【问题讨论】:
-
this question 对您有帮助吗?似乎您可以获取
request()调用的返回值,然后在五秒后调用setTimeout(requestReturnValue.abort.bind(requestReturnValue), 5000)以中止请求。不过,我不知道 Node.js,所以我可能错了。 -
我可以只写 setTimeout(requestReturnValue.abort(), 5000) 吗? @NobleMushtak
-
你可以试试。我不知道 Node.js 是如何工作的,所以它可以工作。但是,通常,我在将方法传递给
setTimeout()时使用Function.prototype.bind,因此方法中this的值不会丢失。 -
@NobleMushtak 非常感谢。我现在就试试:)
-
@NobleMushtak 我刚刚尝试过,但它可以工作,但以其他方式。我有 100 个请求,当我使用“setTimeout(requestReturnValue.abort.bind(requestReturnValue), 5000)”时,它不会中止每个请求,它会在 5 秒后中止所有 100 个请求。 (我用setInterval按时间间隔触发100个请求,比如10ms)
标签: javascript node.js callback terminate