AngularJS: Vermeiden Sie es, den gleichen REST-Service zweimal aufzurufen, bevor die Antwort empfangen wurde

8

Ich habe zwei Direktiven, von denen jede die gleiche Fabrik verwendet und einen $ q / $ http-Aufruf einwickelt.

%Vor%

Problem: Wenn ich das tue

%Vor%

Ich bekomme den gleichen Web-Service zweimal abgefeuert, weil GET von ItemA noch läuft, wenn GET für ItemB geht.

Gibt es einen Weg für das zweite Feuer, um zu wissen, dass es bereits eine Anfrage dazu gibt, so dass es eine Minute warten und es kostenlos holen kann?

Ich habe darüber nachgedacht, einen $ http oder $ q-Wrapper zu erstellen, der jede URL als ausstehend kennzeichnet oder nicht, aber ich bin mir nicht sicher, ob das der beste Weg ist. Was würde ich tun, wenn es aussteht? Gib einfach das bestehende Versprechen zurück und es löst auf, wenn der andere verrechnet?

    
oooyaya 15.01.2015, 21:43
quelle

1 Antwort

17

Ja, alles, was Sie tun müssen, ist, das Versprechen zwischenzuspeichern und nach der Anfrage zu löschen. Jede nachfolgende Anfrage kann das gleiche Versprechen verwenden.

%Vor%     
PSL 15.01.2015, 21:47
quelle