หากเซิร์ฟเวอร์ไม่ตอบสนองภายในเวลาที่กำหนด (อาจมีปัญหากับการเชื่อมต่อเครือข่ายหรืออาจเป็นเพราะเซิร์ฟเวอร์ทำงานผิดปกติหรือไฟร์วอลล์เครือข่ายบล็อกไคลเอนต์จากการเชื่อมต่อระหว่างเซิร์ฟเวอร์) การหมดเวลาตอบสนองและเหตุการณ์การหมดเวลาของวัตถุ HTTP.ServerResponse
Response.settimeout (เวลา, [โทรกลับ]);
คุณยังไม่สามารถระบุฟังก์ชั่นการโทรกลับใน SettimeOut คุณสามารถใช้วิธีการตรวจสอบเวลาเพื่อระบุฟังก์ชั่นการโทรกลับ
หากไม่มีการระบุฟังก์ชั่นการโทรกลับหมดเวลาดังนั้นหากการหมดเวลาเกิดขึ้นพอร์ตซ็อกเก็ตที่เชื่อมต่อกับไคลเอนต์ HTTP จะถูกปิดโดยอัตโนมัติ หากระบุฟังก์ชั่นการโทรกลับหมดเวลาจะมีการเรียกใช้ฟังก์ชันการโทรกลับและพอร์ตซ็อกเก็ตที่เชื่อมต่อกับไคลเอนต์ HTTP จะถูกปิดโดยอัตโนมัติ
การคัดลอกรหัสมีดังนี้:
var http = ต้องการ ("http");
var server = http.createServer (ฟังก์ชั่น (req, res) {
if (req.url! == "/favicon.ico") {
// การตรวจสอบหมดเวลา
/*res.settimeout(1000);
res.on ("หมดเวลา" ฟังก์ชัน () {
console.log ("การหมดเวลาตอบสนอง");
-
// การโทรกลับหมดเวลา
Res.SetTimeout (1,000, function () {
console.log ("การหมดเวลาตอบสนอง");
-
settimeout (function () {
Res.Setheader ("ประเภทเนื้อหา", "ข้อความ/html");
res.write ("<html> <head> <meta charset = 'utf-8' /> </head>");
res.write ("สวัสดี");
res.end ();
}, 2000);
-
-
Server.Listen (1337, "localhost", function () {
console.log ("เริ่มฟัง"+server.address () พอร์ต+"... ");
-
รันรหัสผลลัพธ์:
หลังจากลบฟังก์ชั่นการโทรกลับหมดเวลา: