Comme indiqué dans la documentation angulaire,
délai d'attente - {numéro | Promise} - délai d'expiration en millisecondes ou promesse d'abandonner la demande lorsqu'elle est résolue.
En ce moment, je mets le délai à la promesse, afin que je puisse manuellement annuler la demande par promise.resolve()
.
À l'heure actuelle, je souhaite également le rendre capable de configurer une valeur de délai d'expiration, au lieu que le délai d'expiration de la demande soit de 120 secondes.
Comment puis-je le configurer sans affecter la fonctionnalité de demande d'annulation existante?
Réponses:
3 pour la réponse № 1Tu pourrais faire quelque chose comme ça
$scope.qPromiseCall = function()
{
var timeoutPromise = $timeout(function()
{
//aborts the request when timed out
canceler.resolve();
console.log("Timed out");
}, 250);
//we set a timeout for 250ms and store the promise in order to be cancelled later if the data does not arrive within 250ms
var canceler = $q.defer();
$http.get("data.js", {timeout: canceler.promise} )
.success(function(data)
{
console.log(data);
$timeout.cancel(timeoutPromise);
//cancel the timer when we get a response within 250ms
});
}
Pour plus de détails, regardez
Définition d'un gestionnaire de délai d'attente sur une promesse en angularjs
Première réponse de @Khanh TO