我有一个工作正常的代码:
myService.myFunc1()
.then(myService.myFunc1)
.then(function(dataA) {
// do something
})
.then(myService.myFunc2)
.then(function(dataB) {
//do something
});
但是,执行myFunc1
时,布尔值myService.trig
的值设置正确。我想更改上面的代码,使其成为基于myService.trig
布尔值的条件,并决定是否在myService.myFunc1().
之后执行所有其余的.then(for true)或相互执行。然后INSTEAD (假的)。
如何以angularJS方式完成?
谢谢。
答案 0 :(得分:1)
我认为你必须在每次回调中检查``myService.trig`的价值是什么。
myService.myFunc1()
.then(() => {
// execute this function if the "myService.trig" is true
if (!myService.trig) return;
return myService.myFunc1;
})
.then((dataA) => {
// execute this function if the "myService.trig" is true
if (!myService.trig) return;
// do something
})
.then(() => {
// execute this function if the "myService.trig" is false
if (myService.trig) return;
return myService.myFunc2;
})
.then((dataB) => {
// execute this function if the "myService.trig" is false
if (myService.trig) return;
// do something
});
或者您可以嵌套承诺,因此您无需一直检查值。但老实说,我宁愿重复检查而不是嵌套承诺。