async
以下は同じ
code:js
const usePromise = () => Promise.resolve(1);
const useAsync = async () => 1;
いずれも返り値の型はPromise<number>
後者は、内部でPromiseを作る操作をしていないがPromiseが返ることを意識する
前者は、2重でPromiseを作っている感じになる
しかし、実際の結果はflatになる
この関数がreturnしたとき、Promiseは戻り値をresolveする
例外をthrowしたときは、その値をrejectする
code:Promiseとの対応.ts
const usePromise = () =>
new Promise<number>((resolve, reject) => {
if (A > 10) {
resolve(A);
}
reject(B);
});
const useAsync = async () => {
if (A > 10) {
return A;
}
throw B;
};