Goal: $scope.finalArray = $scope.arrayFromPromise2.concat($scope.arrayFromPromise1);

**First approach**

```
 $scope.arrayFromPromise1 = [];
 $scope.arrayFromPromise2 = [];

 someService.query1()
   .then(function(success){
      $scope.arrayFromPromise1 = success.data;
      return someService.query2();
   })
   .then(function(success){
      $scope.arrayFromPromise2 = success.data;
      $scope.finalArray =  $scope.arrayFromPromise2.concat($scope.arrayFromPromise1);
   });

```

**Second approach**

```
$scope.arrayFromPromise1 = [];
$scope.arrayFromPromise2 = [];

function getData1(){
  someService.query1().then(function(success){
    $scope.arrayFromPromise1 = success.data
  });
}

function getData2(){
  someService.query2().then(function(success){
   $scope.arrayFromPromise2 = success.data;

   $scope.finalArray =  $scope.arrayFromPromise2.concat($scope.arrayFromPromise1);
  });
}

getData1();
getData2();

```

The **Second approach** will throw an error depending on the time of the first promise from *getData1* is finished.
Can use $scope.$watch inside getData2 so I can watch the changes from $scope.arrayFromPromise1 ? Any hints that is different from chaining promises ?