Wie behandelt man die Verzögerung in $ http.post in AngularJS?

8

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.

    
karthick 07.11.2013, 10:37
quelle

3 Antworten

4

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

erhalten     
Maxim Shoustin 07.11.2013 11:31
quelle
1

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.

    
Tom 07.11.2013 10:55
quelle
0

Überprüfen Sie diese:

%Vor%     
Prasad Shigwan 08.06.2016 17:59
quelle

Tags und Links