Package Exports
- pull-catch
- pull-catch/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (pull-catch) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
pull catch
Handle errors in pull streams
This is a through stream that can ensure your source stream always ends normally, even when it returns an error. This is useful if you are combining several source streams with pull-many, and you want to keep the remaining streams open even if one of them errors.
install
$ npm install pull-catch
example
var test = require('tape')
var S = require('pull-stream')
var Catch = require('../')
test('catch errors', function (t) {
t.plan(2)
S(
S.error(new Error('test')),
Catch(function onErr (err) {
t.equal(err.message, 'test', 'should callback with error')
}),
S.collect(function (err, resp) {
t.error(err, 'should end the stream without error')
})
)
})
test('return false to pass error', function (t) {
t.plan(1)
S(
S.error(new Error('test')),
Catch(function (err) {
return false
}),
S.collect(function (err, res) {
t.equal(err.message, 'test', 'should pass error in stream')
})
)
})
test('return truthy to emit one event then end', function (t) {
t.plan(2)
S(
S.error(new Error('test')),
Catch(function (err) {
return 'test data'
}),
S.collect(function (err, res) {
t.error(err, 'should not end with error')
t.deepEqual(res, ['test data'], 'should emit one event')
})
)
})
test('callback is optional', function (t) {
t.plan(1)
S(
S.error(new Error('test')),
Catch(),
S.collect(function (err, res) {
t.error(err, 'should end stream without error')
})
)
})