1
在我的課堂我同時包含同步和異步代碼,類似的功能:如何拒絕同步和異步代碼功能的承諾?
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
)
請讓我知道是否有遺漏。
在此先感謝您的幫助。
我們體會到自答案拋出一個錯誤!請同時添加關於爲什麼選擇此解決方案的詳細信息,這是否意味着「退回」被拒絕的承諾? –
完成,希望覆蓋它:) –