我正在使用一个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 #美元一般使用
请注意success
和error
的弃用通知。
你熟悉回调函数和承诺吗?我认为你应该在getOrder函数中有一个额外的参数,回调函数,你应该用结果或者错误信息来调用它。
这是一个介绍:http://recurial.com/programming/understanding-callback-functions-in-javascript/
或者只返回承诺本身,如上所述!