嵌套的http美元.得到的功能



我正在构建一个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
          });

相关内容

  • 没有找到相关文章

最新更新