node.js:如何停止已经启动的http请求

时间:2013-04-01 16:51:02

标签: javascript node.js

我们使用request与node.js发出http请求。 我们希望在用户决定时让用户有机会中止请求。这意味着我们必须从请求函数外部触发abort()。也许我们可以从函数内部检查外部变量。 (我们已经尝试在请求开始后将超时设置为零,这不起作用。) 也许我们将变量请求设置为null。你知道更好的方法吗?

这里是示例代码,用于显示我们正在讨论的请求类型:

app.js:

var http = require('http');
var request = require("request");

http.createServer().listen(1337, "127.0.0.1");

request({uri: 'http://stackoverflow.com'  }, function (error, response, body) {
    console.log('url requested ') ;
    if (!error){
        console.log(body);
    }
    else
    {
        console.log(error);
    }
});

1 个答案:

答案 0 :(得分:70)

请求函数返回一个请求对象。只需拨打abort()就可以了吗?

var r = request({uri: 'http://stackoverflow.com'  }, function (error, response, body) {
    console.log('url requested ') ;
    if (!error){
        console.log(body);
    }
    else
    {
        console.log(error);
    }
});

r.abort();