/ / Angular $ http config timeout - javascript, angularjs, httprequest, angular-promise, angular-http

Angular $ http config timeout - javascript, angularjs, httprequest, angular-promise, angular-http

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 № 1

Tu 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