## 全体感 お疲れ様、内容よくまとまってると思う 別にそのままでもいいと思うのだけど、細かい点気になった点を一応お伝えします ## 前提 対象読者がPromise初心者なら、アロー関数やテンプレート文字列になじみがない人がいるかもしれないから そこは先に覚えてねとかのケアをしてあげると親切とおもいます ## コード全般 インデントずれてたり、セミコロンがあったりなかったりする Prettier通すなりで一貫性もたせるのがよいかもね https://prettier.io/playground/ ```javascript // before const promise = new Promise((resolve, reject) => { reject() }).then(() => { console.log('resolveしたよ') }).catch(() => { console.log('rejectしたよ') }) ``` ```javascript // after const promise = new Promise((resolve, reject) => { reject(); }) .then(() => { console.log('resolveしたよ'); }) .catch(() => { console.log('rejectしたよ'); }); ``` ## Promiseは、処理の順序に「お約束」を。 ### ※ この解釈は正しいとは言い切れません   -> 解釈誤ってないと思うよ。むしろ注釈が気になって読者が不安になるからこれはなしでもよいかも ### コメントのアスタがなんかずれてる ↓こんなかんじにするとよいかも ```javascript /** * Comment */ 1 ``` ### コメントでthenが分離されてて読みづらい 代替案 ```javascript .then(() => { // 処理が無事終わったことを受けとって実行される処理 console.log('3番目'); }) ``` ### Promiseのメソッドチェーン `そのあとにまた別のthenを実行することができます。 また、catchの後にもthenで連結して、実行することができます。` 同じこと2回言ってるように聞こえる。。。 ### async/awaitを使ってもっと簡潔に! 「上記の処理をasync/awaitを用いると、下記のようにまとめることができます。」のところ 実際はawaitだけじゃなくて、setTimeoutまわりもだいぶきれいになっちゃってるから、比較がフェアじゃないと感じた await つかうだけなら、2行しか減らないはず。。。 あとしょっぱなからasync functionをアロー関数と組み合わせると、初心者は理解しにくいかもしれぬ ### awaitとは コード例、関数内で副作用として代入してるの設計的にBADかなあ JS的にはこっちのがしっくりくる ```javascript const asyncFunc = async () => { let x, y; x = await new Promise(resolve => { setTimeout(() => { resolve(); }, 1000 ) }) y = await new Promise(resolve => { setTimeout(() => { resolve(); }, 1000 ) }) console.log(x + y) } ``` 一応もっとまとめちゃうとこう、ちょっとやりすぎかも ```javascript const x = await new Promise(resolve => { setTimeout(() => resolve(1), 1000) }) const y = await new Promise(resolve => { setTimeout(() => resolve(1), 1000) }) console.log(x + y) ``` そもそもだけどこの処理だと、むしろPromise.allしてawaitする方がよいのかも 並列化できるし 総和出すのにreduce使うとわかりにくいね ```javascript const x = new Promise(resolve => { setTimeout(() => resolve(1), 1000) }) const y = new Promise(resolve => { setTimeout(() => resolve(1), 1000) }) const results = await Promise.all([x, y]); const sum = results.reduce((acc, cur) => acc + cur, 0); console.log(sum); ``` ### おわりに 申し訳ございません。 -> わが社感すごい、僕はこれ苦手 多分。。。 -> 自信もっていいよ