Saya menggunakan modul permintaan nod untuk menangkap imej dalam kelompok, tetapi mendapati beberapa imej tidak dimuat turun sepenuhnya Beberapa imej dipaparkan secara normal dan ada yang berwarna kelabu.
Dan muat turun gambar yang tidak lengkap juga berlaku secara rawak, tidak semestinya yang mana satu.
Kod adalah seperti berikut:
var arr=["http:www.a.com/1.png","http:www.a.com/2.png","http:www.a.com/3.png"....]
for(var i=0;i<30;i++){
lodPic(arr[i])
}
function loadPic(url){
var _url=encodeURI(url);
request.head(_url,function(err,res,body){
if(err){
console.log(err);
}
request(url).pipe(fs.createWriteStream(ph)).on('close',function(){
console.log('finfish');
});;
});
}
Lihat kod dan cuba tetapkan panjang kandungan kepada nilai yang lebih besar yang pernah saya temui sebelum ini semasa menulis pelayan statik menggunakan cpp. Sesetengah gambar lebih besar daripada nilai ini, jadi hanya separuh daripadanya berjaya dipindahkan. Sesetengah gambar lebih kecil daripada nilai ini, jadi ia boleh dihantar sepenuhnya. Saya tidak tahu sama ada anda mempunyai masalah ini juga.
Mungkin ada masalah dengan 30 penulisan serentak pada cakera Bolehkah anda cuba mengurangkan bilangan penulisan serentak?
Atau cuba parallelLimit() async.js?
Kaedah HEAD http tidak mempunyai badan tindak balas Jika anda menggunakan kaedah http ini untuk meminta imej, anda pasti tidak akan mendapat apa-apa.