usar tutorial then promises promesas promesa example como array all javascript angularjs angularjs-scope angularjs-controller angularjs-http

javascript - tutorial - AngularJS: asigna datos de $ http.get a la variable



promise http (2)

Intento asignar datos de $ http.get a variable en mi controlador.

$http.get(URL).success(function (data) { $scope.results = data; console.log(''results in $http.get :''+ $scope.results); }); console.log(''results after http.get''+ $scope.results);

Los primeros datos de impresión de log de consola de get. Después de $ http.get (url) .success $ scope.results se imprime como indefinido.


Esto es porque $http.get es asincrónico. Por lo tanto, su código no se retendrá hasta que la solicitud ajax se complete, sino que ejecutará el resto del código. Por lo tanto, su segundo console.log se ejecutará antes de que se complete la solicitud de ajax. En este punto, no hay una variable de ámbito llamada $scope.results , que se define solo después de que se complete la solicitud, por eso imprime undefined . Su primer console.log se imprimirá solo después de que $http ajax finalice con éxito, en este punto tiene $scope.results que se asigna a los data provienen del back-end.


$http es una función asynchronous . Vuelve al instante sin embargo, devuelve una promise no es un resultado real. Cuando se completa la onsuccess se llama al onsuccess .

El segundo (el que está fuera de la llamada) console.log ejecuta antes de que $http regrese.