title: Return another promise from a promise
body: <p>I have a promise for an object and would like to get a promise for a property of that object. How should I do that?</p>
  
  <pre><code>var user = Q.nfcall(User.findOne, {
      _id: userId
  });
  var accessToken = Q.Promise(function (resolve, reject) {
      user.then(function (user) {
          if (!user) return reject(new Error('User not found.'));
          if (!user.github.accessToken) return reject(new Error('Access token not found.'));
          return resolve(user.github.accessToken);
      }, function(err) {
          return reject(err);
      });
  });
  </code></pre>
  
  <p>This is what I tried so far, but I'm not sure if its the best (or most correct) way.</p>