如何从孩子的承诺中呼唤父母的承诺?

时间:2018-03-21 11:33:59

标签: javascript ecmascript-6 ecmascript-5

我有这样的功能:

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。根据我想再次调用父承诺的条件执行子承诺后。怎么可能?

1 个答案:

答案 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);
});