如何从外部函数的$http-function内部返回值



我正在使用一个Angular服务作为API调用的接口。在这种情况下,JavaScript的异步特性使这变得困难。你对我该怎么做有什么建议吗?

function getOrder(orderId) {
    $http({
        method: 'GET',
        url: '<api-url> + orderId'
    }).success(function (result) {
        /* --- getOrder should return parameter 'result' --- */
    });
}

最好返回承诺:

function getOrder(orderId) {
  return $http({
    method: 'GET',
    url: '<api-url>' + orderId
  });
}

当调用

时:
getOrder("1").then(function(response) {
  // response.data contains the returned data
});

见https://docs.angularjs.org/api/ng/service/http #美元一般使用


请注意successerror的弃用通知。

你熟悉回调函数和承诺吗?我认为你应该在getOrder函数中有一个额外的参数,回调函数,你应该用结果或者错误信息来调用它。

这是一个介绍:http://recurial.com/programming/understanding-callback-functions-in-javascript/

或者只返回承诺本身,如上所述!

最新更新