質問: aryRequest.length){ return false; //break; } }, 1); }); return true; }).then(function(value) { //表示 console.log("end"); //プロセスエラー }).catch(function (error) { //表示 console.log("error"); }); }); ``` 処理結果 ``` shori1 0 data1 shori1 1 data2 shori1 2 data3 shori1 3 data4 shori1 4 data5 end shori2 0 reqest_data1 shori2 1 reqest_data2 shori2 2 reqest_data3 shori2 3 reqest_data4 shori2 4 reqest_data5 ``` endが先に来る。
回答: `Promise.prototype.then(関数1).then(関数2)`で、`関数2`の実行のタイミングは、`関数1`の**返り値**に依存します。 * `関数1`が`Promise`を返した場合...この`Promise`が`resolved`となった段階で`関数2`が実行される * それ以外の場合...`関数2`は、`関数1`の実行直後に実行される ということで、非同期処理を連鎖させたい場合には、「promiseの中にpromiseを書」くしかない「仕様」です。