Chandermani は正しいです。必要な変数を必要なスコープで使用できるようにすることを忘れないでください。
var id,token,gametoken;
$http.get('http://host.com/first')
.then(function(result){
id=result;
return $http.get('http://host.com/second/'+id);
}
.then(function(result){
token = result
return $http.get('http://host.com/third'+id+'/'+token);
}
.then(function(result){
gametoken = result;
//Do other code here that requires id,token and gametoken
}
編集: 約束を連鎖させる必要はありません。後日呼び出しを行い、promise が解決されていることを確認したい場合は、$q.all(); を使用できます。
var id,token,gametoken;
var p1 = $http.get('http://host.com/first')
.then(function(result){
id=result;
}
// Later on to make your new second call
$q.all([p1]).then(function(){
//Make second call knowing that the first has finished.
}
$q.all() は配列を取るため、必要に応じて複数の promise を配置でき、それらがすべて解決されるまで待機します。