我有一項服務。可以說這返回字符串「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