TL;DR 配列に突っ込んでreduceすると簡単に直列処理が書けて、さらに処理開始をコントロールできてうれしい reduceした後に配列に処理が増えると、後から増えた分は実行されない 処理が順次増えるときは配列に入れるのではなくthenメソッドでさっさと繋ぐといい Async Functionsはよ この記事は最低限のPromiseへの理解を要します。 Promiseを返す関数の直列実行には本来Promise.prototype.thenを使えばよい。 function f(wait) { return new Promise((resolve) => { setTimeout(() => { console.log(wait); resolve(wait * 2); }, wait); }); }; Promise.resolve(100) .then(f) .then(f) .the
![Promiseを返す関数の直列実行におけるreduceの利用と注意点 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/b4c9f2615a743b312cbe341bbf9e33673ff00bb0/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UHJvbWlzZSVFMyU4MiU5MiVFOCVCRiU5NCVFMyU4MSU5OSVFOSU5NiVBMiVFNiU5NSVCMCVFMyU4MSVBRSVFNyU5QiVCNCVFNSU4OCU5NyVFNSVBRSU5RiVFOCVBMSU4QyVFMyU4MSVBQiVFMyU4MSU4QSVFMyU4MSU5MSVFMyU4MiU4QnJlZHVjZSVFMyU4MSVBRSVFNSU4OCVBOSVFNyU5NCVBOCVFMyU4MSVBOCVFNiVCMyVBOCVFNiU4NCU4RiVFNyU4MiVCOSZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9OGIzYzRiOGE4MGQ1MzY2ZTJiNjZhNTFiM2ZlMDc1ZGY%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBiZXJseXNpYSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZjE5YWRlOTM2YTM1YzZjNGQ5OGY1YjgxMjJlNGMxYmE%26blend-x%3D142%26blend-y%3D436%26blend-mode%3Dnormal%26txt64%3DaW4g5qCq5byP5Lya56S-IOODieODr-ODs-OCtA%26txt-width%3D770%26txt-clip%3Dend%252Cellipsis%26txt-color%3D%2523212121%26txt-font%3DHiragino%2520Sans%2520W6%26txt-size%3D36%26txt-x%3D156%26txt-y%3D536%26s%3D9b4660b4e62384ad675f7f8e2ea2ddb1)