Ich verwende $http.post
, um die Daten von node.js
server zu erhalten. Ich möchte mit der Verzögerung umgehen.
Ich hatte Timeout als $http.defaults.timeout = 100;
hinzugefügt und erwartet bis console.log
die Verzögerung im Fehler, aber es funktioniert nicht.
Beispiel:
%Vor% Ich bin neu bei AngularJS
. Jede Hilfe wird dankbar sein.
Das $timeout
gibt Versprechen zurück. Das $http.post
gibt ebenfalls Versprechen zurück.
Also würde ich $q.all
verwenden. Dokumente
Referenz
$q.all([promise, …])
→ newPromise
newPromise
wird aufgelöst, sobald alle gegebenen Versprechen vorliegen
wurde gelöst.
Wir können eine Fabrik erstellen (oder wenn Sie sie ändern möchten, können Sie den Anbieter verwenden):
%Vor%und jetzt im Controller können wir etwas schreiben wie:
%Vor% Sie erhalten also nur dann eine Antwort, wenn die Zeitüberschreitung gestoppt wurde, unabhängig davon, wie schnell wir die Antwort von $http.post
AngularJS $ http akzeptiert Timeout als einen der Anfrageparameter (mehr hier )
Sehen Sie sich bitte diesen Beitrag an, der erklärt, wie Sie die Timeout-Funktion implementieren:
%Vor% Erfolgs- und Fehlerfunktionen akzeptieren mehrere Parameter: function(data, status, headers, config)
. Wenn Sie einen Zeitüberschreitungsfehler erhalten, wird der Fehlerhandler ausgeführt und sein Status lautet 0
.
Ich hoffe, das wird helfen.
Tags und Links javascript angularjs