Angular:从$ http内部父函数返回id

时间:2015-09-05 21:03:03

标签: javascript angularjs http promise

我不确定我是否正确行事,但我有一个父函数returnPersonId()使用$http获取对象并返回该对象&# #39; s id

function returnPersonId(n) {
  var q = 'http://api.themoviedb.org/3/search/person?api_key=' + apiKey + '&query=' + n;
  $http({ method: 'GET', url: q })
    .success(function (data, status, headers, config) {
      if (status == 200) {
        var person = data.results[0];
        var id = person.id;
        return id;
      }
    })
    .error(function (data, status, headers, config) {
      console.log('Error happened whilst getting the actor or actress.');
    })
}

目前它正在成功方法中返回id。我不确定如何将id返回到其父函数,所以如果我运行该函数,我就会返回id,如下所示:

returnPersonId('tom+hanks'); // returns 31

我将如何做到这一点?

感谢任何帮助。

提前致谢!

1 个答案:

答案 0 :(得分:1)

由于回调函数不会从中返回数据,因此您需要将代码样式切换为使用promise模式,以便在成功或失败时轻松返回数据。

function returnPersonId(n) {
  var q = 'http://api.themoviedb.org/3/search/person?api_key=' + apiKey + '&query=' + n;
  return $http({ method: 'GET', url: q })
    .then(function (resp) {
      var data = res.data
      if (res.status == 200) {
        var person = data.results[0];
        var id = person.id;
        return id;
      }
    },function (error) {
      console.log('Error happened whilst getting the actor or actress.');
      return 'Error occured'
    })
}