Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是请求';她总是打电话来?_Javascript_Node.js_Http_Request_Npm - Fatal编程技术网

Javascript 是请求';她总是打电话来?

Javascript 是请求';她总是打电话来?,javascript,node.js,http,request,npm,Javascript,Node.js,Http,Request,Npm,我使用的是npm模块request,但是很多时候一些请求从未被回调,这会导致很多问题 所以我想知道,请求是否应该总是回调?比如,如果我的请求超时,它是带错误回调,还是只是忽略我的回调 如果它忽略了它,我怎么能100%确定调用了我的函数,并且能够知道请求在任何情况下都不起作用?是的,回调函数总是被执行 var opt = { url: 'http://stackoverflow.com', timeout: 1 // one milisecond, my ping is 100 m

我使用的是
npm
模块
request
,但是很多时候一些请求从未被回调,这会导致很多问题

所以我想知道,请求是否应该总是回调?比如,如果我的请求超时,它是带错误回调,还是只是忽略我的回调


如果它忽略了它,我怎么能100%确定调用了我的函数,并且能够知道请求在任何情况下都不起作用?

是的,回调函数总是被执行

var opt = {
    url: 'http://stackoverflow.com',
    timeout: 1 // one milisecond, my ping is 100 ms
};

request.get(opt, function (err, res, body) {
    if (err) {
        console.log(err.stack);
    } else {
        console.log(body);
    }
});
输出:

Error: ETIMEDOUT
    at null._onTimeout (C:\node\node_modules\request\request.js:677:15)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
您可以查看请求代码,了解请求如何发出此错误:

如果回调使用得当,则不会忽略回调。只需确保有一个
error
事件的侦听器(超时是一个错误)。如果您想要更具体的答案,请发布一些代码:)