非同期/待機関数によって返されたプロミスをどのように拒否できますか?
例:もともと
foo(id: string): Promise<A> {
return new Promise((resolve, reject) => {
someAsyncPromise().then((value)=>resolve(200)).catch((err)=>reject(400))
});
}
async / awaitに翻訳する
async foo(id: string): Promise<A> {
try{
await someAsyncPromise();
return 200;
} catch(error) {//here goes if someAsyncPromise() rejected}
return 400; //this will result in a resolved promise.
});
}
では、この場合、この約束を適切に拒否するにはどうすればよいですか?
Promise
コンストラクタのアンチパターンを避けてください!最初のスニペットでさえ書かれるべきfoo(id: string): Promise<A> { return someAsyncPromise().then(()=>{ return 200; }, ()=>{ throw 400; }); }