📜  Node.js http.ServerResponse.setTimeout() 方法(1)

📅  最后修改于: 2023-12-03 15:03:13.345000             🧑  作者: Mango

Node.js http.ServerResponse.setTimeout() 方法

在 Node.js 中,http.ServerResponse.setTimeout() 方法允许设置服务器响应的超时时间。如果在超时时间内服务器没有作出响应,则自动关闭该连接。

语法
response.setTimeout(msecs[, callback])
  • msecs:指定超时时间(以毫秒为单位)。
  • callback:可选参数,超时后执行的回调函数。
返回值

该方法没有返回值。

示例

以下示例演示如何使用 http.ServerResponse.setTimeout() 方法:

const http = require('http');

const server = http.createServer((req, res) => {
  res.setHeader('Content-Type', 'text/plain');
  
  // 设置超时时间为 10 秒
  res.setTimeout(10000, () => {
    res.end('Server timed out.');
  });
  
  res.write('Hello, world!');
});

server.listen(3000, () => {
  console.log('Server listening on port 3000');
});

在上面的示例中,我们在服务器响应对象 response 中使用 setTimeout() 方法设置了超时时间为 10 秒。当超时时间到达后,执行回调函数,结束响应并返回 "Server timed out." 字符串。

注意事项
  • http.ServerResponse.setTimeout() 方法必须在响应首次写入之前调用,否则会抛出异常。
  • 如果响应的数据是在多个包中写入的,则必须调用此方法的适当时间(可能在多个 write 调用之间)。