diumenge, 22 de gener del 2017



$http $timeout.

En AngularJS y es JavaScript no tiene hilos, asi que no se puede secuanciar en un hilo tareas. Las tareas se ejecutan parcialmente a turnos. Por eso al llamar a objetos de recursos externos puede haber resultdos raros como cambios en el orden.

    $http.get(url\API1).
                then(function successCallback(response) {
 $scope.myvariable= 'hola';
 console.log($scope.myvariable);

        }, function errorCallback(response) {
}

    $http.get(url\API2).
                then(function successCallback(response) {
$scope.myvariable= 'adios';
console.log($scope.myvariable);
        }, function errorCallback(response) {
}

En AngularJS puede pasar que el Output sea primero adios,hola y no hola y adios quees lo esperado mirando la secuencia.

Una manera de resolver esto o al menos cambiarlo es el uso de $timeout pr ejem

     $timeout(function (){
       $scope.myvariable=  haceralgo();
     },5000);

Aunque lo mas seguro es sincronizar las llamadas en el then.success asi

    $http.get(url\API1).
                then(function successCallback(response) {
 $http.get(url\API2).then(function successCallback(response) {

 }

        }, function errorCallback(response) { }

Cap comentari:

Publica un comentari a l'entrada