generated at
Promise.then


.then(onFulfilled, onRejected)
Promiseの処理の後続として呼ばれる
成功した場合は、 onFulfilled が呼ばれる
失敗した場合は、 onRejected が呼ばれる
これらはいずれも関数
多くの場合、第二引数は省略され、代わりに .catch() が利用される
この第1引数 resolve が、Promise定義内の resolve と見なせる
Promiseを作るときに resolve にちゃんと型を当てていると fn は上手く推論される
ts
new Promise((resolve: (arg: number) => void) => { setTimeout(() => { resolve(10); }, 16); });
こう書いたほうがシンプル.ts
new Promise<number>((resolve) => { setTimeout(() => { resolve(10); }, 16); });
型を書かないと、 .then(v => void) のときの v unknown になる
Promiseが失敗したときは呼ばれない