私はangularJSに慣れておらず、http.get()を使用しようとしています。私はQRスキャンを完了しており、QRコードから受け取ったテキストは私のURLに配置されます。私が受け取っている問題は、スキャンが完了する前にhttp.get()が実行されていることです。したがって、 "エラー"を返します。どうすれば$ scope.QRScan()関数が完了した後でhttp.get(url)が実行されるようにすることができますか?angs js http get
$scope.QRscan(); /// Want to finish first
var params = "?number=" + $scope.QRText;
params += "&action=ci";
var url = "http://test/test.php" + params;
var promise = $http.get(url);
promise.then(
function(payload) {
var r = payload.data;
if (r.status.toString() == '1') {
var alertPopup = $ionicPopup.alert({
title: ' successful ',
});
} else {
var alertPopup = $ionicPopup.alert({
title: 'Error',
});
};
});
QRScan()
$scope.QRscan = function() {
$cordovaBarcodeScanner.scan().then(function (qrData) {
}, function (error) {
var alertPopup = $ionicPopup.alert({
title: 'There was an error scanning the QR code.',
});
});
$scope.QRText = qrData.text;
};
この$ scope.QRscan()は約束を返しますか、またはコールバック関数を受け入れますか? node.jsはノンブロッキングですので、$ scope.QRscan()はvar params = "?number =" + $ scope.QRTextの前に終了します。コールバックを使用するか、または約束の解決を待たなければなりません –