質問: setTimeout(function() { $t.bxSlider(); }, 100); } } } ``` bxSlider初期化直前のDOMのイメージ: ``` Title String Title String Title String ```
回答: 非同期に実行すれば”上手く”動くなら、$t.bxSlider()がhtmlArray.ready()の無名関数を呼ぶ後の処理に依存しているからでしょう。 ここでも何度も言われていますが、JavaScriptはシングルスレッドなのでsetTimeoutが実行されるのは必ず自分を呼び出したスレッドが終わった後です。(JavaScriptには同期待ちもないので必ずスレッドが終わった後です) このプログラムだと、htmlArray[i].ready()が全部終わった後に実行すればうまく動くというなら、それは処理順に齟齬があるのでしょう。