es sieht für mich aus wie ich ein Nebenläufigkeitsproblem in NodeJs haben. Mir ist bewusst, dass dies nicht möglich sein soll.Nodejs Filestream Nebenläufigkeit
Ich verarbeite Daten durch die Linie aus einer Datei und schreibe sie in eine andere Datei auch in Zeilen. In der Ausgabedatei merke ich, dass Zeilen überschrieben werden, was bedeutet, dass ich hin und wieder Zeilen in der Ausgabe sehe, die scheinbar auf halbem Wege von anderen Zeilen überschrieben werden. Ich lese die Daten aus einem Lesestream. es sieht ungefähr so aus:
Gibt es irgendeine Möglichkeit dieses Schemas, das Schreibfehler produziert, oder muss ich woanders suchen?
Was macht 'processLine()'? Ist es völlig synchron? Zu Ihrer Information, Sie können Ihren Code mit 'resting = line.pop()' vereinfachen. – jfriend00
Beachten Sie auch, dass '.write()' einen booleschen Wert zurückgibt, der anzeigt, ob der Ausgabepuffer voll ist und Sie warten müssen, bis das 'drain'-Ereignis erneut beginnt zu schreiben. Siehe [doc] (https://nodejs.org/api/stream.html#stream_writable_write_chunk_encoding_callback). – jfriend00
Vielleicht möchten Sie einen [transform stream] (http://codewinds.com/blog/2013-08-20-nodejs-transform-streams.html) verwenden und dann '.pipe()' verwenden, das alle behandelt Flusskontrolle für Sie. – jfriend00