title: Angular conditional promises
body: <p>For an angular project, I have to nest promises and I run into cases where I am not sure of what I am doing. 
  Here is one of my code :</p>
  
  <pre><code>return Action1().then(function (data) {
      var defer = $q.defer();
      if (data.condition) {
          $q.all([Action2(), Action3(), Action4()]).then(function () {
              defer.resolve();
          });
      } else {
          defer.reject("error_code");
      }
      return defer.promise;
  });
  </code></pre>
  
  <p>Action1, Action2, Action3 and Action4 are working promises functions. It's a lot of promises and actions depend on conditions.
  Can I do that and be sure my main function will be always resolved or rejected?</p>
  
  <p>I read that we can pass promise inside resolve function.
  Can I do that and is this the same as above:  </p>
  
  <pre><code>return Action1().then(function (data) {
      var defer = $q.defer();
      if (data.condition) {
          defer.resolve($q.all([Action2(), Action3(), Action4()]);
      } else {
          defer.reject("error_code");
      }
      return defer.promise;
  });
  </code></pre>