【问题标题】:JavaScript/CoffeeScript equivalent of Ruby Timeout moduleJavaScript/CoffeeScript 等效于 Ruby Timeout 模块
【发布时间】:2023-03-13 23:55:02
【问题描述】:

在 JavaScript 中实现 Ruby Timeout 模块功能的最佳方式是什么?

http://www.ruby-doc.org/stdlib-1.9.3/libdoc/timeout/rdoc/Timeout.html

例如取消(异步)完成时间超过给定时间的请求?

编辑:

明确我想要实现的目标:

例如,如果我在 node.js 中执行 HTTP 请求,例如

http.request(options, callback).end();

如果请求的时间超过给定的超时时间,我想取消请求。因此,取消绑定回调或确保请求没有进一步影响所需的一切。

【问题讨论】:

    标签: javascript ruby coffeescript settimeout


    【解决方案1】:

    如果您想取消(到)长时间运行的进程,请创建一个 在您使用 setTimeout 创建的闭包(函数)中可访问的变量

    someLongRunningHttpRequest = new HttpRequest("point://some/where")
    
    #cancel the request after 5 seconds
    setTimeout -> 
        someLongRunningHttpRequest.cancel()
    , 5000
    

    显然你需要一个“cancable”的对象,或者你可以简单地忽略结果?

    【讨论】:

    • 如何通过 setTimeout 终止作用域内初始化的所有操作?
    • 我不明白你的问题 - 你是在问如何终止超时功​​能?那将是通过 clearTimeout(id_that_was_returned_via_setTimeout)
    • 我的意思是如果我启动一个请求(db/http 或其他东西)并且我想在超时后终止,无论请求是如何实现的。
    • 那么请您重新表述您的问题。不清楚你到底在问什么
    • 更新了我的问题。希望你能得到我现在想要达到的目标!
    猜你喜欢
    • 2011-12-22
    • 2012-05-12
    • 2011-08-30
    • 2016-04-22
    • 2021-10-28
    • 2014-06-20
    • 1970-01-01
    • 2013-07-22
    • 2011-08-03
    相关资源
    最近更新 更多