generated at
Javascript Promise
JavaScript Promiseの本 を読んでる。
Promiseの利点
非同期処理をコールバック(callback)なし(隠避)で書ける
thenableなインターフェースが提供されて、直列的に書ける
コード上で、メインスレッド?から脱線せずにコードが書ける、読める
エラー処理をシンプルにする
catchable?なインターフェースが提供されて、エラー処理を集約?しやすくできる
ただ、最終的には、async/awaitのシンタックスのほうがすっきりする?
Promiseの状態
Fullfilled, Rejected, Pending の3つがある

Promiseの作り方
constructorを使って : var promise = new Promise(function(resolve, reject){/*...*/});
Promise.resolve() Promise.reject() というクラスメソッドで、ショートカットで作ることも可能
Promiseを返す有名どころの関数:
fetch()
io系なものは、promiseを返すものがおおいかな? ioが入る時点で非同期になるのはOSから?

Promiseの使いかた 
instrance methodで、 promise.then(onFullfiled, onRejected)
then() は常に新しいpromiseオブジェクトを返す。 chainingしてるつもりになってると、気をつける
promise.catch() もある。


実装の流れ. 引数が関数というのがしっくりこないと???となる。
> Promiseコンストラクタは2つのパラメータを持つ1つのコールバックを引数に取る
当たり前の言い換えだけど、callbackを取る関数があり、さらにそのcallback関数は2つの引数を取る。その2つの引数は関数。
var promise = new Promise(function(resolve, reject) { … })
errorでも, rejectがよばれる。 その際に、errorオブジェクトが渡される
コンストラクトしてできたオブジェクトは、.then() というcallbackをもち、そこで promiseが fullfill(resolve or rejucted)された後の結果を受け取って処理をする。
callbackの約束を書いた(引数にとったよ)、そのcallbackは成功時、失敗時の2つのパターンを取れるようにした。
> 非同期処理の複雑なエラーハンドリングを分かりやすく書くことが出来る点等もメリット


が、async/awaitのがより使いやすいという流れになってる?

参考
> Promise の resolve 後の挙動は..
>1. resolve で Promise の状態は fulfilled に
> 2. 処理は継続
> 3. 処理が全て終わってから値がリター
普段、javascript書かないので、上記のこのリンクが調べるきっかけになった。初心者に親切。