【问题标题】:pass two promise from one service method angularjs从一个服务方法 angularjs 传递两个承诺
【发布时间】:2018-02-12 09:38:58
【问题描述】:
function getOrderItemInfo() {
    var deferred = $q.defer();

        $http.get('v1/order/show')
                    .success(function(res){

                      var data = res.data;
                      var users = auth.getCurrentUser().children;

            /*
              would like to pass deferred.resolve(data);
            */  

                        users.forEach(function(e){
                          e.user_id=e.user_id.toString();
                        })
                      var finalArray = _.differenceBy(users, data, "user_id");

            /*
              would like to pass deferred.resolve(finalArray); as well
            */  

                     if(finalArray.length > 0){
                          deferred.resolve(finalArray); 
                      }else{
                         users.status = "404";
                         deferred.resolve(users.status);
                         //return;
                         console.log("Does not exist");      
                      }

                    }).error(function(error){
                        console.log(error);
                        deferred.reject(data.message);
                      });

            return deferred.promise;
  }

我想从一个功能服务传递两个承诺 deferred.resolve(数据); deferred.resolve(finalArray);

调用此服务方法时返回两个数组是否可以,请指导

【问题讨论】:

  • 你可以用数组解决:deferred.resolve([data,finalArray]); 同样在你的错误函数中数据超出范围
  • 如果我们想将两者合并到一个数组中怎么办

标签: javascript angularjs


【解决方案1】:

您可以创建一个对象并解析该对象。

deferred.resolve({
   finalArray : finalArray,
   data :data
}); 

【讨论】:

  • 也喜欢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-15
  • 1970-01-01
  • 2018-01-06
  • 1970-01-01
  • 2015-04-08
相关资源
最近更新 更多