我有一项服务。可以说这返回字符串“B”。 我有以下的控制器:退货声明不等于承诺
$scope.output;
var someVariable = 'A';
$scope.setUpConnection = function (someVariable) {
$scope.output = createConnection(someVariable);
console.log($scope.output);
}
createConnection = function (someVariable) {
var result;
service.connect(someVariable).then(function success(response) {
result = response.data;
}, function error(response) {
result = 'Error' + response;
});
return result;
}
的的createConnection()函数跳转到函数结束时,不等待。然后,返回什么并因此返回未定义。有人可以解释为什么它不等待承诺完成?
的服务是没有问题的,如果我更换一个直接
$scope.output = response.data;
它工作正常的回报。这个问题以及这样设置的原因是,一旦我开始移动它,createConnection()函数将最终发生在一个单独的JS文件中,因此上述解决方案将无法工作。因此,我想我需要返回声明。
可能的复制里面的承诺[如何返回从一个异步调用的响应?](https://stackoverflow.com/questions/14220321/how-do-i-返回异步调用的响应) – Liam