Yes, you are writing works but far from optimal.
There is no reason to chain .then
calls unless you are returning a promise from one of them in which case it'll wait until the asynchronous operation will complete.
Your code can be simplified to:
data.people().then(function(people){
//rest of code here
});
Since none of your thens return promises.
Promises that don't return a promise will continue to the next .then
almost instantly.
Also, if you do chain handlers and want to access the return value in later .then
calls you have to return the data from that .then
handler.