本文首发于个人博客 Cyy’s Blog
转载请注明出处 https://cyyjs.top/blog/5b45ba93a5d0ec4a02d9d39b

使用nodejs在请求第三方接口的时候,经常会用到http.request()方法;为了防止请求等待时间过长,我们可以为其设置超时时间。

在请求参数中添加timeout参数
例如:

var http = require('http');
var options = { 
    hostname: '127.0.0', 
    port: 8080, 
    path: '/x', 
    method: 'GET',
    timeout: 500
}
var req = http.request(options, function (res) {
    res.on('data', function (chunk) { 
        console.log('BODY: ' + chunk); 
    });
    res.on('end', function (error) {
        console.log('请求完成');
    });
    res.on('timeout', function() {
        console.log('请求超时');
    });
});
req.on('error', function(e) { 
    console.log('请求失败: ' + e.message); 
});
req.end();

请求超过500毫秒后,会终止请求,同时触发timeout事件,我们可以监听此事件,在请求超时后做一些处理。