ネイティブ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)