0
リモートサーバーから画像をドローロードし、これらの画像からスライドショーを作成するアプリケーションを作成しようとしています。私が選んだスライドショー部分。画像が完全にダウンロードされていない間に画像を使用しようとしているため、コードが機能しません。私は約束を使用する必要があることを知っていますが、私はそれを整理することはできません。私は間違ったことをやっているし、時間を無駄にするのではなく、ここで質問をする方が良いと感じている。約束を返さないpipe
ので、あなたがチェーン.pipe(...).then(...)
できないnode.jsで複数の画像をダウンロードし、すべてのリクエストが完了するまで待ちます。
var fs = require('fs')
var request = require('request-promise');
function downloadImgs(imageurls){ //imageurls is an array of urls
var tempar=[];
var promises=[];
for (var i = 0; i <=imageurls.length; i++) {
if(typeof imageurls[i] !== "undefined"){
img=tempfolder+i+'.jpg'; //tempfolder is a global variable
tempar.push(img);
prom=request(imageurls[i]).pipe(fs.createWriteStream(img));
promises.push(prom);
}
}
Promise.all(promises).then(function(data) {
createslideshow(tempar);//create slideshow with downloaded images
});
};
ありがとう!あなたは私を半分救った! –