私はサービスを持っています。これは文字列 "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()関数ではない、.thenを待って何も返さない、そのようにundefinedを返し、関数の終わりにジャンプします。誰かがなぜそれが終わることを約束するのを待っていないのか説明できますか?
サービスは、私が直接
$scope.output = response.data;
とリターンを交換する場合、それは正常に動作し、問題はありません。問題とそれがこのように設定されている理由は、それを動かすとすぐに別のJSファイルでcreateConnection()関数が実行されるため、上記の解決策は機能しません。そういうわけで、私はreturn文が必要だと思った。
可能性のある重複した内部の約束アンラップする必要がある[私は非同期呼び出しからの応答を返すにはどうすればよいですか?](https://stackoverflow.com/questions/14220321/how-do-i-非同期呼び出しからの返信) – Liam