当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js http.ClientRequest.setTimeout()用法及代码示例


http.ClientRequest.setTimeout()是HTTP模块内的ClientRequest类的内置应用程序编程接口,用于为客户端请求设置请求超时。

用法:

request.setTimeout(timeout[, callback])

参数:此方法将超时值作为参数(以毫秒为单位),第二个参数是在给定超时值之后执行的回调函数。

返回值:此方法只返回回调函数以进行进一步操作。

范例1:Filename-index.js



Javascript

// Node.js program to demonstrate the   
// request.setTimeout() method 
  
// Importing http module 
const http = require('http'); 
  
// Create an HTTP server 
const server = http.createServer((req, res) => { 
    res.writeHead(200, { 'Content-Type':'text/plain' }); 
    res.end('okay'); 
}); 
  
// Now that server is running 
server.listen(3000, '127.0.0.1', () => { 
  
    // Make a request 
    const options = { 
        port:3000, 
        host:'127.0.0.1', 
        headers:{ 
            'Connection':'Upgrade', 
            'Upgrade':'websocket'
        } 
    }; 
  
    // Getting clinet request 
    const req = http.request(options); 
  
    // Setting the timeout for the client reauest 
    // by using host method 
    req.setTimeout(3000, () => { 
        console.log("timeout") 
        process.exit(0) 
    }) 
});

使用以下命令运行index.js文件:

node index.js

输出:

timeout

示例2:Filename-index.js

Javascript

// Node.js program to demonstrate the   
// request.setTimeout() method 
  
// Importing http module 
const http = require('http'); 
  
// Create an HTTP server 
http.createServer((req, res) => { }).listen(3000, '127.0.0.1', () => { 
  
    // Getting clinet request 
    const req = http.request({ 
        port:3000, 
        host:'127.0.0.1', 
    }); 
  
    // Setting the timeout for the client reauest 
    // by using host method 
    req.setTimeout(5000, () => { 
        console.log("timeout") 
        process.exit(0) 
    }) 
});

使用以下命令运行index.js文件:

node index.js

输出:

timeout

参考:https://nodejs.org/dist/latest-v12.x/docs/api/http.html#http_request_settimeout_timeout_callback

相关用法


注:本文由纯净天空筛选整理自RohitPrasad3大神的英文原创作品 Node.js http.ClientRequest.setTimeout() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。