Skip to content
This repository has been archived by the owner on Oct 31, 2018. It is now read-only.

Best way to handle an error #39

Open
eddieajau opened this issue Oct 4, 2015 · 1 comment
Open

Best way to handle an error #39

eddieajau opened this issue Oct 4, 2015 · 1 comment

Comments

@eddieajau
Copy link

Just wondering what's the best way to handle an error in a paused stream that is waiting for a promise to resolve. The example I have is something like the following case:

// Going to map some rows from a CSV reader
function mapRow() {
  return function (data) {
    // Yes, we want `this` in the context of the calling `through` function.
    var self = this;

    // Pausing the stream while we handle the promise.
    self.pause();

    somePromisaryService(data)
      .then(function () {
        self.emit(data);
        self.resume();
      })
      .catch(function (err) {
        // Ok, how do we deal with this???
      });
  }
}

aCsvReader()
  .pipe(through(mapRow()));

Is there anything available in the context of through that I can use or do I need to introduce something external to catch any error in the promise?

Thanks in advance.

@dominictarr
Copy link
Owner

Use self.emit('error', err)
You other self.emit(data) should be self.queue(data) BTW.
On Oct 5, 2015 12:47 PM, "Andrew Eddie" [email protected] wrote:

Just wondering what's the best way to handle an error in a paused stream
that is waiting for a promise to resolve. The example I have is something
like the following case:

// Going to map some rows from a CSV readerfunction mapRow() {
return function (data) {
// Yes, we want this in the context of the calling through function.
var self = this;

// Pausing the stream while we handle the promise.
self.pause();

somePromisaryService(data)
  .then(function () {
    self.emit(data);
    self.resume();
  })
  .catch(function (err) {
    // Ok, how do we deal with this???
  });

}
}

aCsvReader()
.pipe(through(mapRow()));

Is there anything available in the context of through that I can use or
do I need to introduce something external to catch any error in the promise?

Thanks in advance.


Reply to this email directly or view it on GitHub
#39.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants