Thanks for the response Isaac. So I can not easily go to node 0.10 yet but 
given the advantages, will push for it. 

I have one more question: I guess util.pump() was also never 100% safe with 
regards to if the operation has completed or not? Even though I am called 
in the callback, the write stream might not have written all data yet, 
right? Is there any file specific event I can use to be pinged in case the 
operation is done?

Ben

On Friday, May 3, 2013 5:22:15 PM UTC+2, Isaac Schlueter wrote:
>
> Benjamin, 
>
> The readable.end event is not actually a guarantee that the entire 
> operation is completed, only that the "end" signal is being propagated 
> to the writable.  It could still take some time for the writable 
> stream to finish writing all the data it's been given. 
>
> In v0.10, writable streams all have a "finish" event, which tells you 
> that the writable stream has received the end signal, and all of its 
> data has been flushed.  Prior to that, well, you kind of have to know 
> what sort of stream you were dealing with.  Most emit "close" at some 
> point, but that's not guaranteed.  There's no way to be sure in the 
> general case.  (One of many reasons for the streams refactor in 0.10.) 
>
> If you are using pipe(), there's no need to call resume().  The pipe() 
> call will make the stream flow for you.  (Actually, prior to 0.10, 
> readable streams started out in a free-flowing state, and pause() was 
> not guaranteed to actually prevent "data" events.) 
>
>
> On Fri, May 3, 2013 at 7:15 AM, Benjamin Pasero 
> <[email protected] <javascript:>> wrote: 
> > So taking your feedback using node 0.8, this is what it has to look 
> like? 
> > 
> > var readS = fs.createReadStream("fileA.txt"); 
> > var writeS = fs.createWriteStream("fileB.txt"); 
> > 
> > readS.on("end", function() { 
> >    // Operation done 
> > }); 
> > 
> > readS.on("error", function() { 
> >    // Operation error 
> > }); 
> > 
> > writeS.on("error", function() { 
> >    // Operation error 
> > }); 
> > 
> > readS.resumse(); 
> > 
> > Right? 
> > 
> > On Friday, May 3, 2013 10:44:39 AM UTC+2, Benjamin Pasero wrote: 
> >> 
> >> Hi, 
> >> 
> >> I am missing a good example for how to adopt stream.pipe for my old 
> >> util.pump code when it comes to replacing a file with the contents of 
> >> another file. As of today, I am using code similar to this: 
> >> 
> >> var readS = fs.createReadStream("fileA.txt"); 
> >> var writeS = fs.createWriteStream("fileB.txt"); 
> >> util.pump(readS, writeS, function(error) 
> >>    // Operation done 
> >> }); 
> >> 
> >> Now with stream.pipe I am uncertain if I am using it correctly. I am 
> >> wondering if I have to call resume() or not before piping and I also 
> wonder 
> >> how to register a callback when the operation is fully completed. My 
> attempt 
> >> is this: 
> >> 
> >> var readS = fs.createReadStream("fileA.txt"); 
> >> var writeS = fs.createWriteStream("fileB.txt"); 
> >> readS.pipe(writeS); 
> >> 
> >> readS.on("end", function() { 
> >>    // Operation done 
> >> }); 
> >> 
> >> I would really appreciate if someone could tell me if this is the right 
> >> way of doing it. As a related question, I am wondering if I should open 
> the 
> >> file with "w" or "r+". However, I think "w" is correct because I am 
> >> replacing the file contents. 
> >> 
> >> Thanks, 
> >> Ben 
> > 
> > -- 
> > -- 
> > Job Board: http://jobs.nodejs.org/ 
> > Posting guidelines: 
> > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines 
> > You received this message because you are subscribed to the Google 
> > Groups "nodejs" group. 
> > To post to this group, send email to [email protected]<javascript:> 
> > To unsubscribe from this group, send email to 
> > [email protected] <javascript:> 
> > For more options, visit this group at 
> > http://groups.google.com/group/nodejs?hl=en?hl=en 
> > 
> > --- 
> > You received this message because you are subscribed to the Google 
> Groups 
> > "nodejs" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an 
> > email to [email protected] <javascript:>. 
> > For more options, visit https://groups.google.com/groups/opt_out. 
> > 
> > 
>

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to