Я пытаюсь сделать запрос через прокси, но в некоторых ситуациях этот прокси не работает, поэтому мне приходится использовать другой прокси.это все круто, но дело в том, что прокси, который я использую, генерируется по предварительному запросу в том же коде, поэтому для использования другого прокси мне нужно запросить его снова, и я не знаю, как это сделать со второго запросанаходится внутри первого (потому что иначе я не могу использовать результат первого возвращенного запроса).Вот как выглядит мой код:
function asyncreq(url, proxy) {
return new Promise(resolve => {
request({
url: url,
proxy: proxy
}, function(error, response, body) {
if (typeof response !== 'undefined') {
if (response.statusCode == 200) {
resolve(response);
return;
}
resolve(response)
return;
}
resolve(error)
});
});
}
asyncreq("http://pubproxy.com/api/proxy?api=" + myapikey + "&type=http&country=fr&format=txt&https=true&post=true").then(function(result) { //FIRST REQUEST
if (result.statusCode == 200 && result.body.includes("http://") == false) {
var proxy = result.body;
console.log("using proxy: " + proxy)
asyncreq("https://haapi.ankama.com/json/Ankama/v2/Account/CreateGuest?game=20&lang=fr", "http://" + proxy).then(function(result) { //SECOND REQUEST
if (JSON.parse(result.body).key == undefined) {
// DO STUFF IF IT IS A SUCESS (If it matters, here i intend to make a third request)
} else {
console.log(JSON.parse(result.body).key) //HERE I MUST JUMP TO FIRST REQUEST AGAIN
}
})
} else {
console.log("Error: " + result.body)
}
})
Я пытался вернуть значение в случае сбоя, а затем выполнить цикл while, но он не работает, потому что я не могу использовать возвращенное значение внефункция