Подтвердить что ты не робот

Node.js: как остановить уже запущенный HTTP-запрос

Мы используем request, чтобы сделать http-запросы с node.js. Мы хотели бы дать пользователю возможность прервать запрос, когда он примет решение. Это означает, что мы вынуждены вызывать функцию 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);
    }
});
4b9b3361

Ответ 1

Функция запроса возвращает объект запроса. Просто назовите 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();