日々集めた何かしらを残すための何か。共有とか疑問解決とかできたらいいな。iPhoneとかiOSとかその他スクリプトとか色々。この広告は、90日以上更新していないブログに表示しています。jQuery昨日の記事の続き。false」を取ればいいやと思いコメントアウトすると初期化ができなくなった。↓.ajax内の.then実行となるようで、.whenに到達した時点でループ変数iがMAX値に達しており、.then実行時に配列の参照範囲を超えているためエラーとなっていた模様。同期の場合は先にforループ内で.thenの処理を行うため正しく配列の参照ができていたっていうのが今回のオチ。.when到達前にiを初期化してやって、.thenの中でiをカウントアップすればよかったみたい。正解としてはこんな感じ。正解ではなかった!さらに追記で補足。console.log("Ajax通信に失敗しました");});こんな感じで3行追加してあげれば非同期での動作が可能になった。したけど、こんな使い方あってるんだろうか...。追記そもそもwebパーツの画面描画が遅延した場合、この処理だと想定しないコンボBOXに初期値を投入してしまう場合があるため却下。hoge2にhoge1の初期値が投入される場合がある模様。同期版で対応するか、画面描画まで含めて.thenの処理に加えないとダメかも...。今回は前回の記事版で対応することにしよう。追記あーそうか、.then内でi定義してないから必然的に外側のiを見に行っちゃうってだけか...。forEachにするだけで初期化とかインクリメントとか必要なくなる。ついでに.whenもこれだと.thenが後になってしまうため、.when.applyにする必要あり。最終的には↓でFIXかな。後続処理呼び出しこんなログになるので後続処理前に.thenが呼ばれてることが確認できた。.thenで吐いてるログのindexが前後することはあるけど、配列用indexの整合性が保たれているため画面描画も問題なし。ヶ月)日々集めた何かしらを残すための何か。共有とか疑問解決とかできたらいいな。iPhoneとかiOSとかその他スクリプトとか色々。読者になる@nob_84_をフォローはてなブログをはじめよう!forgeseremさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。