Juste une question «idiote» mais cela me déroute beaucoup, pour un étudiant d'AngularJS. Lorsque console.logging une variable, disons var result
est une promesse d'un GET ou autre, et .then()
Je fais certaines tâches, comme asignin une variable.Facile à propos de Angular: Pourquoi cela change-t-il l'ordre?
var result = ... ;
$scope.number = {};
result.then(function(data) {
$scope.number = 5;
console.log($scope.number);
});
console.log($scope.number);
Okay! Donc, pour moi, cela devrait imprimer
5
5
(Dans le cas où j'initialiser une variable de portée de $, en dehors de cette fonction ou promesse)
5
undefined
(dans le cas où la deuxième .log tente d'imprimer un non variable globale -defined, en dehors de la fonction)
Alors je reçois:
undefined
5
Pourquoi l'outter $scope.number
imprime-t-il avant la variable interne (5)?
Je veux initialiser la variable après avoir obtenu le GET
, dans la promesse, et plus tard, utiliser la var initialisée.
Merci =) Cela accélérera mon apprentissage!
Super, je comprends mieux maintenant. Je le verrai 'similairement' aux fonctions récursives, que la fonction parente continue d'attendre jusqu'à ce que sa fonction enfant se termine. Donc, si je veux continuer à travailler avec $ scope.number, disons que c'est un nombre qui retourne avec un HTTP.GET, je devrais concaténer avec une autre fonction? Par exemple, comme vous l'avez fait? 'asyncFunction1() puis (fonction (données) {$ scope.number = données; retour asyncFunction2 (scope.number de $);} ).. Puis (function() { console.log (portée de $. numéro); }); ' Encore une fois, c'est un code facile, le 1er initialise nombre, et en second lieu, peut le traiter. – ButterySAM777
Toute autre façon de traiter l'étendue $.variable dans la promesse, de le traiter plus tard consécutivement? Je vous remercie! – ButterySAM777
La façon dont vous le faites semble correcte. Vous définissez $ scope.number à l'intérieur de la fonction que vous avez transmise à '.then', ainsi vous attendez que la réponse http soit terminée. Vous n'avez besoin d'une seconde fonction que si vous renvoyez une autre promesse de la première fonction, comme si vous deviez effectuer une seconde requête http après la première terminée. –