【发布时间】:2018-04-11 15:03:30
【问题描述】:
如何避免这个小回调地狱?这段代码运行良好
estaElServicioDespachado(15).then(function(){
sePermiteModificarElCupon(25).then(function(respuesta){
$state.go("barra.general.formularioCupon");
},function(error){
alert(error);
})
},
function(error){
alert(error);
});
我试图做这样的事情来避免回调地狱,但是当 'sepermitemodificarElcupon' 拒绝时,不会调用 catch 函数
estaElServicioDespachado(15)
.then(sePermiteModificarElCupon(25)}
.then(function(){$state.go("barra.general.formularioCupon");})
)
.catch(function(error){
alert(error);
})
也许这会有所帮助。这是调用返回承诺的服务函数的函数
function estaElServicioDespachado (id_servicio){
return catalogoServicios.estaElServicioDespachado(id_servicio)
}
function sePermiteModificarElCupon(id_cupon){
return catalogoCupones.sePermiteModificarElCupon(id_cupon);
}
【问题讨论】:
-
你想添加
catch而不是回调? -
没有。我想使用第二种形式,但它不起作用。
-
你忘记了 Promise 的基本规则。
return!!!!否则它将永远无法工作。 -
但我必须在哪里添加退货?
-
来自每个函数,除非它两者是同步的并且不返回值。
标签: angularjs callback angular-promise