最近我接受了承诺链式模式。这样做很方便:
action1
.then(()=> action2())
.then(()=> action3());
但是,为了做到这一点,我改变了我的所有方法(TypeScript):
action1() : Promise<any>{
try{
// actual code
return Promise.resolve();
} catch (err){
console.error(err);
return Promise.reject(err);
}
}
这看起来非常重复。什么是避免代码重复的最佳方法?
答案 0 :(得分:2)
编写一个函数来包装一个函数的promise,你可以重用它
<parent-component>
<child-component></child-component>
<child-component></child-component>
<child-component></child-component>
<child-component></child-component>
<child-component></child-component>
</parent-component>
答案 1 :(得分:0)
由于您使用的是打字稿,因此您需要使用async
/await
。只需做
async action1(): Promise<any>{
try {
return // actual code;
} catch (err){
console.error(err);
throw err;
}
}
然而,您很可能实际上不想捕获,记录和重新抛出每个函数中的所有错误,因此这简化为
async action1(): Promise<any>{
return // actual code;
}