2017-03-23 4 views
1

Ich mache viele API-Aufrufe in meinen Anwendungen, sprich 50.Eckige Http Priorität

Die Gesamtzeit für den Abschluss aller API-Anrufe wird ca. 1 Minute sein. Die Priorität für alle api-Aufrufe ist 2. Ich habe den eckigen Cache aktiviert.

Also in der Zwischenzeit, wenn der Benutzer meiner Anwendungen nur auf einige der API-Anrufe unter den alle konzentrieren möchten, d.h. sagen, nur 6 API-Anrufe.

Dann noch einmal werde ich diese 6 API-Anrufe mit Priorität 1 projizieren.

Aber trotzdem bekomme ich nicht, was ich anvisierte? d. h. diese 6 API-Anrufe müssen die Daten so bald wie möglich erhalten.

Bitte beachten Sie den folgenden Beispielcode.

Auf Vorlastfaktor:

for(var i=1,priority=19;i<=19,priority>=1;i++,priority--) 
{ 
$http.get("http://localhost:65291/WebService1.asmx/HelloWorld"+i+"?test=hari",{priority:2}) 
.then(function(response) { }); 
} 
} 

auf ein Ereignis klicken:

$http.get("http://localhost:65291/WebService1.asmx/HelloWorld7?test=hari",{priority:1}) 
.then(function(response) { }); 
} 

Antwort

1

, wenn Sie mehrere HTTP-Anfrage einen Schuss dann $q.all

Innerhalb der Schleife drücken Sie die HTTP-Anfragen verwenden senden möchten zu einem Array und senden Sie das HTTP-Array auf einmal.

var httpArr = [] 

for (var i = 1, priority = 19; i <= 19, priority >= 1; i++, priority--) { 
    httpArr.push($http.get("http://localhost:65291/WebService1.asmx/HelloWorld" + i + "?test=hari", { 
     priority: 2 
    })) 
} 
$q.all(httpArr).then(function(response) { 
    console.log(response[0].data) //1st request response 
    console.log(response[1].data) //2nd request response 
    console.log(response[2].data) //3rd request response 
}) 
+0

Vielen Dank für Ihre Antwort. Aber meine Frage war anders. Ich muss einen laufenden API-Aufruf dynamisch priorisieren. Also projiziere ich einen anderen gleichen api Anruf mit Priorität 1. Aber ich kann die Antwort dieses API-Aufrufs nicht schnell erhalten. Es reagiert nicht für die Priorität 1 – user1710931

+0

rufen Sie nicht die http req innerhalb der Schleife. Erstelle eine separate Funktion und lege die Anfrage in diese Funktion und rufe die neue Funktion innerhalb der for-Schleife auf. übergeben Sie das 'i' als Argument an die Funktion –

+0

Wird dies für die Priorität antworten, die ich zugewiesen habe. Meine Frage war anders. Es betrifft die Priorität – user1710931