我正在构建一个MEAN堆栈应用程序,在那里我需要返回一个登录用户的电子邮件地址,以便将其传递到$http。Get语句,作为参数,以便返回用于显示的数据。
我目前正尝试在工厂中执行此操作,这是我用于返回当前登录用户的端点;
$http.get('/api/users/me')
.then(function(result) {
userId = result.data.email;
});
这个端点工作,如果在函数内输入console.log,它将返回登录用户的电子邮件,如果在函数外输入console.log,则返回undefined。
我想知道是否有可能嵌套,或者使用。then或。success以便从原始的$http传递返回的电子邮件地址。进入第二个请求,它看起来像这样;
$http.get('/api/bets', {params: {"created_by": userId}});
对于Angular来说还是个新手,所以如果你有任何关于从哪里开始解决方案的建议,那将是非常有用的!
你可以在回调中返回另一个承诺,它将被链接:
$http.get('/api/users/me')
.then(function(result) {
return $http.get('/api/bets', {params: {"created_by": result.data.email}});
})
.then(function(result){
//result of /api/bets
});
通过返回另一个$http链接承诺。从第一个处理程序中获取。
$http.get('/api/users/me')
.then(function(result) {
userId = result.data.email;
// make the next call
return $http.get('/api/bets', {params: {"created_by": userId}});
}).then(function (result) {
// result of last call available here
});