Как я могу решить вложенный $ q.all по порядку - PullRequest
0 голосов
/ 04 октября 2018

У меня есть две функции обещания, getToken(), getUser(token) в моем проекте angularjs.

Я могу запустить две такие операции:

$q.all({token: getToken(), userId: getUserId()})
.then(function(resolutions){
  var token  = resolutions.token;
  var userId = resolutions.userId;
});

Но мой метод getUserId()принимает токен в качестве параметра.Поэтому мне нужно сначала получить токен, затем получить userId и вернуть токен и userId.Как я могу сделать это, используя $q?

Я использовал chaniing так:

return getToken().then(function(token){
      return getUserId(token).then(function(userid){
            return {token: token, userid: userid};
      })
})

Но не сработало, идентификатор пользователя имеет значение null.

1 Ответ

0 голосов
/ 04 октября 2018

Вы можете связать обещания, как следующие

getToken()
.then(function(token){
     return getUser(token)
     .then(function(userId){
          return {token, userId};
      })
})
...