如何在promise中简化这个有角度的重复代码?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在promise中简化这个有角度的重复代码?相关的知识,希望对你有一定的参考价值。
我是一名新的Angular开发人员。我想知道是否有一种优雅的方法来简化下面的重复代码。
addTransaccion() {
try {
if (this.idTransaccion === '0') {
this.transaccionesSrv.addTransaccion(data)
.then(res => {
if (res) {
this.router.navigate(['/cuentas/transacciones'], { queryParamsHandling: "preserve" });
}
});
} else {
this.transaccionesSrv.actualizarTransaccion(data, this.idTransaccion)
.then(res => {
if (res) {
this.router.navigate(['/cuentas/transacciones'], { queryParamsHandling: "preserve" });
}
});
}
} catch (error) {
this.envioFormularioOk = false;
}
}
答案
也许这样的事情
(this.idTransaccion === '0' ? this.transaccionesSrv.addTransaccion(data) :
this.transaccionesSrv.actualizarTransaccion(data, this.idTransaccion))
.then(res => {
if (res) {
this.router.navigate(['/cuentas/transacciones'], { queryParamsHandling: "preserve" });
}
});
但我认为阅读起来比较困难
另一答案
const manageTransaction = (data)=>{
if (this.idTransaccion === '0')
return transaccionesSrv.addTransaccion(data);
else
return this.transaccionesSrv.actualizarTransaccion(data,
this.idTransaccion);
};
const navigate = (res) => {
if (res) {
this.router.navigate(['/cuentas/transacciones'], {
queryParamsHandling: "preserve" });
}
};
const addTransaccion = () => {
manageTransaccion(data)
.then(res => navigate(res););
.catch((error)=> {
this.envioFormularioOk = false;
});}
以上是关于如何在promise中简化这个有角度的重复代码?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ES6 中将回调代码转换为 Promise [重复]