2016-11-02 15 views
0

Do rxjs Transformationsmethoden auf beobachtbaren Lauf synchron oder asynchron?rxjs Transformationsverfahren auf beobachtbaren Lauf synchron oder asynchron

z.B. in Winkel 2 http-GET-req und Karte Antwort auf JSON-Objekt:

this.http.get('some/url').map(res => res.json()); 

Was, wenn ich 2MiB JSON und speichern Sie es (zum Beispiel Pouchdb) zu analysieren. Laufen diese Operationen im Hintergrund nicht blockierend oder nicht? Wenn nicht, wie erreiche ich asynchrones Verhalten für diese Ops.

Danke für die Klarstellung!

Antwort

0

JavaScript ist single threaded und asynchrone solange Ihr Code asynchron ist. Dies bedeutet, dass Sie, wenn Ihr Code blockiert (lang laufende Schleife), anderen Code blockiert, der ausgeführt werden soll.

RxJS verwendet WebWorker nicht, daher blockiert alles, was Sie tun, den Ausführungsthread.

Ich denke, wenn Sie Daten auf nicht blockierende Weise verarbeiten möchten, gibt es derzeit keine andere Möglichkeit, als sie selbst mit WebWorker zu implementieren.

Beachten Sie auch, dass asynchrone nicht parallel bedeutet.

+0

Bitte werfen Sie einen Blick auf meine folgende Frage, welche lib würden Sie für Hintergrundarbeit in angular2/typescript verwenden? http://stackoverflow.com/questions/40488724/angular2-work-in-background-thread-with-custom-serializable-objects –

Verwandte Themen