bir değişiklik olmadı sabahtan beridir uğraşıyorum çözemedim bir türlü
const arrow = async (proxy) => {
return await new Promise(function(resolve, reject) {
var agent = new HttpsProxyAgent('http://'+proxy);
var proxyRequest = request.defaults({
agent: agent,
timeout: 5000,
headers: {
'user-agent': 'xxxxx'
}
});
proxyRequest.get("xxxx", async function (error, response, body) {
if(!error) {
if(response.body.includes("Your file is ready")) {
resolve(body)
}
}
});
});
}
const getData = async (data) => {
return new Promise( function(resolve, reject) {
for (let curProxy in data) {
let content = await arrow(curProxy);
if(content.includes("Your file is ready")) {
return resolve(content);
}
}
});
}
(async () => {
let proxies = fs.readFileSync("proxies.txt", {encoding:'utf8', flag:'r'}).split(/\r?\n/)
const subContent = await getData(proxies)
console.log(subContent)
})()Bunu dener misin?
Muhtemelen data.forEach içinde çağırdığın fonksiyon async olduğu için forEach data içindeki bütün itemlar için aynı anda arrow fonksiyonunu çağırıyordu. Debug etme şansım olmadı ama çalışması gerekiyor.
Eğer amacın teker teker denemesi değil, hepsini aynı anda çalıştırması ve bir tane geçerli proxy bulduğunda diğerlerini iptal etmesiyse farklı bir metod önereceğim.