Welche Möglichkeiten gibt es, um "abgeteilte" Antworten anzuzeigen, sobald sie in AngularJS eingehen?

Derzeit habe ich ein Problem bei der Anzeige von Antwortblöcken, die ich von meinem Webdienst-Node.js-Server (localhost: 3000) an einen simulierten Client sende, der auf einem Node.js-Server (localhost: 3001) ausgeführt wird.

edit * - Die aktuelle Implementierung verwendet nur Angulars% http als Transport ohne Web-Sockets

Die Logik lautet wie folgt:

1. Erstellen Sie ein Array auf der Clientseite von 'Cities' und POSTEN Sie diese (vom AngularJS-Controller) an den Webdienst unter: localhost: 3000 / getMatrix

$http({
    method: 'POST',
    url: 'http://localhost:3000/getMatrix',
    data: cityArray
}).
success(function (data,status,headers,config){
    // binding of $scope variables

    // calling a local MongoDB to store the each data item received
    for(var key in data){
        $http.post('/saveRoutes', data[key])
        .success(function (data, status){
            // Data stored
        })
        .error(function (data, status){
            // error prints in console
        });
   }

}).
error(function (data,status,headers,config){
    alert("Something went wrong!!");
});


2. Der Webdienst führt dann seinen Prozess aus, um eine Matrix aus "Städten" zu erstellen (z. B. würde er bei Übergabe von 5 Städten eine JSON-Matrix von 5 mal 5 [25 Elementen] zurückgeben). Aber der Haken ist, dass es die Daten dank Nodes> response.write (Daten )

Randnotiz - Node.js setzt automatisch 'Transfer-Encoding': 'Chunked' im Header

* Other code before (routing/variable creation/etc.) *

res.set({
     'Content-Type':'application/json; charset=utf-8',
});
res.write("[\n");

* Other code to process loops and pass arguments *

// query.findOne to MongoDB and if there are no errors
res.write(JSON.stringify(docs)+",\n");


* insert more code to run loops to write more chunks *

// at the end of all loops
res.end("]");

// Final JSON looks like such
[
    { *data* : *data* },
    { *data* : *data* },
    ......
    { *data* : *data* }
]


Derzeit ist das Problemnicht dass die "Chunked" -Antwort ihr Ziel nicht erreicht, aber dass ich keine Möglichkeit kenne, mit der Verarbeitung der Daten zu beginnen, sobald die Chunks eingehen.

Dies ist ein Problem, da ich versuche, eine 250x250-Matrix zu erstellen und auf die vollständige Antwort zu warten, wodurch Angular die Möglichkeit hat, die Ergebnisse so anzuzeigen, wie es versucht, alles auf einmal zu tun (wodurch die Seite in die Luft gejagt wird).

Dies ist auch ein Problem, da ich versuche, die Antwort in MongoDB zu speichern, und sie nur eine bestimmte Datenmenge verarbeiten kann, bevor sie für MongoDB zu groß ist.

Ich habe versucht, Angulars zu untersuchen$ q und dasPromise / Defer APIIch bin jedoch ein wenig verwirrt über die Implementierung und habe keine Möglichkeit gefunden, Datenblöcke zu verarbeiten, sobald sie eingehen.

Diese Frage auf SO über den Umgang mit Brocken schien auch nicht viel zu helfen.

Jede Hilfe oder jeder Tipp zum Anzeigen von Datenblöcken, wenn AngularJS darauf zurückkommt, wäre sehr dankbar.

Wenn die Antworten informative Codefragmente sein könnten, die die Technik demonstrieren, würde ich es sehr begrüßen, da mir ein Beispiel dabei hilft, mehr als eine 'Text'-Beschreibung zu lernen.

-- Vielen Dank

Antworten auf die Frage(1)

Ihre Antwort auf die Frage