我可以如何拒绝由async
/await
函数返回的Promise?
例如,原本:
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; }); }
- Bergi