【问题标题】:Send a response before timeout ends connection (nodejs)在超时结束连接之前发送响应(nodejs)
【发布时间】:2021-03-19 03:22:47
【问题描述】:

我在“nodejs”中有一个 API,我试图在我的一些路由中插入超时。我尝试使用res.setTimeout 执行此操作,但问题是:这样(应该)立即关闭连接。我想在结束连接之前发送响应,有什么方法可以实现吗?

【问题讨论】:

    标签: node.js api timeout


    【解决方案1】:

    您想在执行任务之前等待一段时间吗?我会尝试利用 setTimeout 函数 -> https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Timeouts_and_intervals

    节点 10+

    // some code
    // ...
    
    // wait five seconds before moving foward
    await new Promise(resolve => {
      setTimeout(()=>{
        resolve()
      },5000)
    })
    
    // move along...
    

    前节点 10

    // some code
    // ...
    
    // wait five seconds before moving foward
    setTimeout(() => {
      // move along in your code in this callback block
    }, 5000)
    
    
    

    【讨论】:

      【解决方案2】:

      超时就是超时。一种行为不当。这不应该发生。它将向用户发送 504 应答。也许您应该尝试将您的前期 http 服务器(例如您的 nginx)配置为具有相同的超时,如果它向最终用户发送回 500 而不是 504。

      【讨论】:

        猜你喜欢
        • 2016-01-29
        • 1970-01-01
        • 2017-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-03
        相关资源
        最近更新 更多