在我的班级中,我得到了一个包含同步和异步代码的函数,如:
export class SomeClass(){
constructor(){
}
foo(a: SomeDataClass): Promise<void>{
if(!a){
throw new Error('a is undefined');
}
return doSomething(a.value).then(()=>{
console.log('done');
}).catch((error)=>{
throw error;
});
}
}
export class SomeDataClass(){
public value: number;
public name: string;
constructor(){
}
}
在catch
部分中抛出关注错误会提升catch
函数用户的foo
。但是第一次投掷(在if
部分)不会,为了抓住这个,我必须在try / catch中使用foo
。
如果我将其丢弃在then
部分内,我怎么能为返回的承诺引发错误? (不使用bluebird
并拒绝Resolver
)
如果遗漏了某些内容,请告诉我。
提前感谢您的帮助。
答案 0 :(得分:1)
所以我发现reject
上有一个Promise
函数实际上正是我正在寻找的函数,它为它作为{{1}使用的函数引发了一个错误}错误,而不是像Promise
中的常规throw
一样。
返回此操作会导致在try/catch
链
Promise.then