我有这样的功能:
function promiseCall() {
//Parent Promise
ParentPromise({
...code here...
}).then(function() {
//Child Promise
ChildPromise({
..code here...
}).then(function(response) {
var result = response.result;
if(result){
// I want to call again Parent Promise from here
}
});
});
};
我调用promiseCall函数然后执行Parent Promise然后执行子promise。根据我想再次调用父承诺的条件执行子承诺后。怎么可能?
答案 0 :(得分:2)
您可以递归地执行此操作:
function promiseCall(arg) {
return ParentPromise(...).then(function() {
return ChildPromise(...);
}).then(function(response) {
var result = response.result.items;
var newArg = ... ;
var finalReturn = '...';
return result ? promiseCall(newArg) : finalReturn;
});
}
var arg = ...;
promiseCall(arg).then(function(res) {
console.log('finalReturn: ', res);
});