###Javascriptで画像を大量に読み込みたい
とある案件でJavascriptで画像を大量に読み込んでThree.jsで処理するものがあり、大量に画像を読み込む時の処理の方法がわからず困っています。
該当のソースコード
処理の部分をこんな感じにしましたが画像読みこむ前に次のプログラムに進んでしまいます
javascript
1function action(i) { 2 return new Promise( (res) => { 3 texture1[i] = new THREE.TextureLoader().load(pic_data[i].src1);//ここと 4 texture2[i] = new THREE.TextureLoader().load(pic_data[i].src2);//ここが非同期 5 res(texture1[i],texture2[i]); 6 }); 7} 8 9function loop( fn, i, end) { 10 return fn(i) 11 .then( (te1,te2) => { 12 tex1(te1,i); 13 tex2(te2,i); 14 if ( i < end ) { 15 return loop( fn, i+1, end); 16 } 17 else { 18 start(); 19 } 20 }); 21} 22$.ajaxSetup({async: false}); 23$.getJSON("./pic.json",(data)=>{ 24 pic_data=data;//画像を配列に格納 25 loop(action, 0, pic_data.length );//処理開始 26}); 27$.ajaxSetup({async: true});
試したこと
Promiseがいいといわれホイホイ使いましたがfor文を使用した時の使い方がわかりません。
補足情報(FW/ツールのバージョンなど)
jQuery v3.3.1
Three.js r101
参考
回答1件
あなたの回答
tips
プレビュー