您可以做的是在函数外部定义一些具有初始值的变量,并在成功函数内部响应设置值,而不是返回它。
委托人 https://en.wikipedia.org/wiki/Delegation_(programming)模式在这里分配效果很好$http
任务到某些服务并使用回调方法进行响应。
Controller
(具体要求请致电服务)->Service
(管理请求参数和其他内容并将工厂响应返回给控制器)->Factory
(发送请求并将其返回给服务)
回调的基本示例
var myVariable = '';
function myFunction (key, callback) {
$http({
method: "GET",
url: "XXXXXXX",
headers: { 'Content-Type': 'application/json' }
}).then(function successCallback(response) {
callback(response);
}, function errorCallback(response) {
throw new Error("Error");
})
};
function myCallbackFunction(response) {
myVariable = response.data; // assign value to variable
// Do some work after getting response
}
myFunction('MY_KEY', myCallbackFunction);
这是设置值的基本示例,但使用上面示例中的回调模式。
var myvariable = '';
function myFunction (key) {
$http({
method: "GET",
url: "XXXXXXX",
headers: { 'Content-Type': 'application/json' }
}).then(function successCallback(response) {
myvariable = response.data; // set data to myvariable
// Do something else on success response
}, function errorCallback(response) {
throw new Error("Error");
})
};
myFunction('MY_KEY');