【发布时间】:2017-02-06 06:34:58
【问题描述】:
在我的课堂上,我得到了一个同时包含同步和异步代码的函数,例如:
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 部分中引发以下错误会为foo 函数的用户引发catch。但第一次投掷(在if 部分)不会,为了抓住这个我必须在try/catch 中使用foo。
如果我不在then 部分内抛出返回的承诺,我怎么能引发错误? (不使用bluebird 并拒绝Resolver)
如果有什么遗漏请告诉我。
提前感谢您的帮助。
【问题讨论】:
标签: javascript promise try-catch bluebird throw