Node.js 如何执行复杂的解析或表示承诺模式

Node.js 如何执行复杂的解析或表示承诺模式,node.js,parse-platform,promise,Node.js,Parse Platform,Promise,我在express中使用解析查询获得了以下模式的代码: var function1 = function(a){ if(a){ var setSomething = new Parse.Object setSomething.set("thing", "stuff"); setSomething.save(); }else{ var query = new Parse.Query(Shortcut);

我在express中使用解析查询获得了以下模式的代码:

var function1 = function(a){
     if(a){
        var setSomething = new Parse.Object
        setSomething.set("thing", "stuff");
        setSomething.save();
     }else{
        var query = new Parse.Query(Shortcut);
        query.first({
            success: function(getThing){
               getThing.set("thing", "otherStuff");
               getThing.save();
               }
         })
      }
   }

var function2 = function(){
    var a = true;
    function1(a)
}()

var function3 = function(){
    var a = false;
    function1(a)
}()

我想使用Promissions一次完成所有保存,然后res.send返回到前端,但我无法确定模式以及是否应该使用Parse Promissions或其他Promission库,如果是Parse.promise()或Parse.promise.as(),我是否使用Parse Promissions无论哪种方式,如果我正在推数组或调用'when'方法,然后我应该在哪里调用when方法。

我不敢相信这是可行的,但它看起来是可行的! 我的回答基于以下帖子:

新手需要注意的关键点是:我还返回了function1中的所有内部函数和save函数

var function1 = function(a){
     if(a){
        var setSomething = new Parse.Object
        setSomething.set("thing", "stuff");
        return setSomething.save();
     }else{
        var query = new Parse.Query(Shortcut);
        query.first({
            success: function(getThing){
               getThing.set("thing", "otherStuff");
               return getThing.save();
               }
         })
      }
   }

var function2 = function(){
    var a = true;
    return function1(a)
}()

var function3 = function(){
    var a = false;
    return function1(a)
}()

Parse.Promise.when(function2(), function3())
.then(function(){
      res.send("Success")})