📜  Node.js http.ServerResponse.writableFinished 属性(1)

📅  最后修改于: 2023-12-03 14:44:39.208000             🧑  作者: Mango

Node.js http.ServerResponse.writableFinished 属性

http.ServerResponse.writableFinished 属性是 Node.js http 模块中的 ServerResponse 类的一个属性。它用于指示服务器响应是否已完成写入。


属性详情
  • 名称: writableFinished
  • 类型: boolean
  • 定义: 只读
  • 默认值: false
  • 可用自: Node.js v6.4.0

属性描述

writableFinished 属性是一个布尔值,用于指示当前服务器响应是否已完成写入。在响应完成写入后,该属性值将为 true

当调用 response.end() 方法结束响应时,writableFinished 属性将设置为 true。此后,将不能继续向响应写入数据,任何调用 response.write()response.end() 的尝试都将被忽略。


示例
const http = require('http');

const server = http.createServer((req, res) => {
  res.write('Hello, World!');
  console.log(res.writableFinished); // false

  res.end();
  console.log(res.writableFinished); // true
});

server.listen(3000);

在上面的示例中,创建了一个简单的 HTTP 服务器。当请求到达时,会向响应写入一条消息,并在控制台输出 writableFinished 属性的值。在响应完成后,最后一行输出的 writableFinished 值将为 true

注意,短时间内多次调用 write()end() 方法仅会生效一次。调用 end() 方法后,writableFinished 属性将被置为 true


注意事项
  • writableFinished 属性只能在服务器响应对象上访问,不能在客户端浏览器中使用。
  • 在数据写入响应期间,writableFinished 属性将保持为 false。只有当 end() 方法被调用后,才会将其置为 true
  • 在调用 end() 方法后,任何再次调用 write()end() 方法的尝试都将被忽略,因为已经完成了写入过程。