Comments (5)
Try 'finish'
instead. Also you could try the second callback to the constructor which is like a cleanup at the end.
from through2.
Thanks! works!
from through2.
I have a similar problem but neither end
nor finish
works for me:
myMongoDbCollection.aggregate([
... aggregation pipeline
])
.pipe(through2.obj(function (obj, _, cb) {
this.push(turnObjIntoString(obj))
cb()
}))
.pipe(process.stdout)
.on('finish', closeDB)
.on('error', closeDB)
The result is printed to stdout
as expected but the closeDB
function is never called and the program never exists.
If I add the listeners before I pipe, then they are called and the program is closed but the print becomes messed up.
from through2.
@TheLudd you're listening to events on process.stdout
, I can't say off the top of my head but it could be that it's not going "close" for you.
myMongoDbCollection.aggregate([
... aggregation pipeline
])
.pipe(through2.obj(function (obj, _, cb) {
this.push(turnObjIntoString(obj))
cb()
}))
.on('finish', closeDB)
.on('error', closeDB)
.pipe(process.stdout)
.. maybe? also, error
isn't propagated between pipe()
so it's not good enough to just stick it at the end of a chain, you should listen for it on each stream in the chain that could trigger an error.
Also check out:
- https://nodejs.org/api/stream.html#stream_stream_pipeline_streams_callback
- https://nodejs.org/api/stream.html#stream_stream_finished_stream_options_callback
They might be helpful for various situations.
from through2.
@rvagg Thanks, rearranging the last lines like this did the trick:
.on('finish', closeDB)
.on('error', closeDB)
.pipe(process.stdout)
Will have to read up a bit on piping and errors....
from through2.
Related Issues (20)
- [QUESTION] through.obj remove duplicate files using path HOT 3
- Security risk
- Object `Transform`s not working well with `stream.compose`
- Update readable-stream module as it's dependent module safe-buffer marked as EOL
- TypeError: Cannot read property 'ended' of undefined HOT 2
- please use a well known open source license HOT 3
- Async issue HOT 1
- package.json parse error
- Readme should describe the transformFunction's "encoding" argument.
- Why only get to the first 16 matched files HOT 3
- how do I test a gulp plugin used througn2 with async callback?
- additional collab?
- Es7 Cannot read property 'push' of undefined HOT 3
- multi column postgres Copy using through2 HOT 1
- Hard to understand the code HOT 2
- 'end' emitted after 'finish' HOT 6
- Create stream with independent objectModes for readableState and writeableState? HOT 2
- v2.0.4 breaking change for gulp packages when using Node 0.10 HOT 17
- BC of new version HOT 1
- `this.push` method call other object stream function HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from through2.