J'ai deux fonctions is_exist() et enregistrer() fonctions. Dans la fonction de sauvegarde, j'appelle la fonction is_exist() avant d'exécuter une valeur booléenne de retour save.it. mais mon problème est save() fonction est pas attendre que is_exist() fonction pour retourner la value.after is_exist fonction() a appelé simplement sauter dans la ligne suivante et continuer à exécuter des lignes Bellow, après save () terminé is_exist() fonction renvoie la valeurcomment attendre appel de fonction valeur de retour befor aller à la ligne suivante dans anguler js
var app = angular.module('my_app', [])
app.controller('my_con', ['$scope', '$http', function($scope, $http) {
$scope.save = function(sector) {
var del_status = $scope.is_exist(sector);
console.log(del_status); // is_exsis return value
if(!del_status) {
// save
}
}
$scope.is_exist = function(sector) {
$http({
method : 'POST',
url : '/is_data_exist',
contentType : 'application/json; charset=utf-8',
data : angular.toJson({
'sector': sector
}),
dataType: 'json',
}).then(function successCallback(response) {
console.log(response.data); //http respond
if(response.data == 'False') {
return false;
}
else {
return true;
}
})
}
}])
est-il possible d'attendre jusqu'à ce que is_exsis() fonction de la valeur de retour, puis aller à la ligne suivante
il est asynchrone, cela signifie que vous ne pouvez pas, car vous ne savez pas quand la promesse sera résolue. Ce que vous pouvez faire est de passer le code suivant en fonction de votre promesse, de sorte que la promesse l'exécute. quelque chose comme 'var del_status = $ scope.is_exist (secteur, fonction() {console.log (del_status);/* etc * /});' (attention, vous avez une faute de frappe, existez! = exsis) – Kaddath
dupliquer: https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call?rq=1 – Nevosis
@Nevosis [link] (https://stackoverflow.com/ questions/14220321/how-do-i-return-the-response-from-asynchronous-call? rq = 1) votre lien concerne ajax et ma question concerne angularjs – user6900333