Runder Datenfluss in Highlandjs

8

Ich lerne gerade highland.js, nachdem ich von NoFlo.js inspiriert wurde. Ich möchte Streams rekursiv betreiben können. In diesem konstruierten Beispiel werde ich eine Zahl liefern, die mit 2 multipliziert wird, und wir filtern Ergebnisse & lt; = 512. Sobald die Zahl multipliziert ist, wird sie in das System zurückgeführt. Der Code, den ich habe funktioniert, aber wenn ich die Doto-Funktion in der Pipeline nehme, verarbeitet es keine Zahlen. Ich vermute, dass ich die Daten falsch in die returnPipe zurücksende. Gibt es eine bessere Möglichkeit, Daten zurück in ein System zu leiten? Was vermisse ich?

%Vor%     
Michael Connor 24.08.2015, 21:34
quelle

2 Antworten

5

Aus der Dokumentation: doto spinnt einen Stream aus, während den Quelldatenstrom erneut ausgibt . Dies bedeutet, dass es in Bezug auf die Pipeline eine Funktion gibt, die den Stream immer noch durchleitet. Wenn Sie doto out verwenden, wird der ursprüngliche Stream bei der nächsten Iteration nicht durch den Rückgabe-Stream zurückgeleitet.

Wenn Sie eine Pipeline verwenden möchten, müssen Sie ihr eine Methode übergeben, die einen Stream akzeptiert und einen Stream ausgibt. Zum Beispiel könnten Sie die Methode doto im Aufruf von H.map((v)=>{console.log(v); return v;}) durch etwas wie H.pipeline ersetzen, und da diese Methode einen Stream verbraucht und einen Stream ausgibt , wird sie weiter fließen, wenn Stream wird in .pipe(returnPipe)

zurück in den Stream geleitet

EDIT: Um deine Frage zu beantworten, wenn du let input = H([1]) deklarierst, erstellst du gerade einen Stream. Sie können alle Verweise auf die Pipeline und returnPipe entfernen und dieselbe Ausgabe mit dem folgenden Code erzeugen:

%Vor%     
jaredkwright 02.09.2015, 06:26
quelle
1

Meine ursprüngliche Absicht war, einen rekursiven Dateireader in highland.js zu schreiben. Ich habe zur highland.js github issues-Liste geposted und Victor Vu hat mir geholfen, dies zusammen mit einer fantastischen Zuschreibung zusammenzustellen .

%Vor%     
Michael Connor 10.09.2015 16:17
quelle

Tags und Links