Considera di avere una semplice, standard $http
di richiesta per una API REST:
...
function makeCall() {
var restURL = "http://my-rest-api/endpoint";
return $http.get(restURL);
}
...
Se il tempo di esecuzione di questa chiamata varia per qualsiasi motivo (a volte ritorna immediatamente, altre volte impiega circa un secondo a e), qual è la procedura migliore per normalizzare il tempo di risposta per l'utente?
In passato, ho fatto cose del genere:
...
function makeCall() {
var restURL = "http://my-rest-api/endpoint";
return $http.get(restURL);
}
...
function myController($scope) {
var promise = makeCall(); //make rest call
$scope.waitMessage = true;
$timeout(function() {
//before resolving the promise, wait a certain number of ms, then
//resolve and display data to user
promise.then(function(response) {
$scope.output = response.data;
$scope.waitMessage = false;
});
}, 1000);
}
Questo è un tentativo di fare in modo che la richiesta impieghi una quantità di tempo fissa, indipendentemente dal fatto che sia stata restituita immediatamente o meno. Durante il tempo di ritardo, visualizzo un interstitial di qualche tipo che dice "Caricamento in corso, attendere ..." o simili, controllati da una variabile come $scope.waitMessage
.
Qualche best practice per questo tipo di casi d'uso?