ネイティブJSで非同期処理を順番に行う
なんかややこしいのでメモ。
jQueryだとwhile().then(funciton(){...}).done(function(){...}) のような形で実装する事が出来ていたが、昨今は脱jQueryががトレンドのようなので、ネイティブJSで実装したい。
ググって先達のリソースを拝見して悩んだ結果、次のようなコードに行き着いた。
const asyncTaskStart = new Promise((resolve) => { resolve() });
asyncTaskStart
.then(function () {
[1番目の処理]
})
.then(function () {
[2番目の処理]
})
...
.then(function () {
[N番目の処理]
})
JSのPromiseの機能を用いて実現している。細かい仕組みの説明は、後述の参考とした先達の記事を見てもらうとかしてほしい(__)
jQueryのwhile()もPromiseを利用したものかな?細かくは調べれていない。
参考
async await の使い方 #JavaScript - Qiita
なぜコールバック関数で非同期処理の順番を順々にできるの?|UnBlog (unreact.jp)