2013-04-01 25 views
18

我們使用request來發出帶有node.js的http請求。 我們希望在用戶決定時讓用戶有機會中止請求。這意味着我們必須從請求函數外部觸發abort()。也許我們可以從函數內部檢查外部變量。 (我們已經嘗試在請求開始後將超時設置爲零,這不起作用。) 也許我們將變量請求設置爲null。你知道更好的方法來做到這一點嗎?node.js:如何停止已經啓動的http請求

這裏是示例代碼顯示什麼樣的要求,我們正在談論:

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); 
    } 
}); 

回答

57

請求函數返回一個請求對象。只需撥打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(); 
+5

有沒有很多傢伙誰可以快速回答node.js問題的權利。你是其中之一。 –