Promiseを使ったループ処理のサンプルはいくつかあるけど、
Promiseの結果を使ってwhileっぽく処理するやり方があまりなかったのでメモ。
変なところやもっといいやり方があればコメントください
function loopUnit() {
return new Promise(resolve => {
/* ループ処理本体 */
resolve(result)
})
}
function looper() {
return new Promise(resolve => {
// 永久ループにならないように限界条件を入れる (optional)
if ( /* 限界条件 */) {
resolve()
return
}
// ループ処理
loopUnit().then(result => {
if ( /* while条件 */ ) {
looper().then(() => resolve())
} else {
resolve()
}
})
})
}
looper()