nodejs-itoolkit icon indicating copy to clipboard operation
nodejs-itoolkit copied to clipboard

Investigate supporting Promises and Callbacks

Open abmusse opened this issue 4 years ago • 3 comments

...

Lingering questions:

...

  • I see that everything is returning callback functions, and I have emulated that behavior. It is possible to have functions use callbacks or Promises, similar to how I do in the odbc package. Just check to see if a callback was passed as the final parameter, and if not, go to a Promise workflow. This would ensure API stability with anyone currently using the package, but would also allow developers to use the more modern Promise syntax.

Originally posted by @markdirish in https://github.com/IBM/nodejs-itoolkit/issues/151#issuecomment-790747341

abmusse avatar Mar 04 '21 17:03 abmusse

I should mention that this isn't a pattern I've seen elsewhere, but it seems to work well. It is similar to packages that "promisify" callback APIs. I think the official Node APIs just create separate "promise" versions of functions, but that seems too verbose to myself.

markirish avatar Mar 04 '21 17:03 markirish

I think the main function that utilizes the callback pattern is Connection.run.

Some of our transports support promises:

  • odbc
  • idb-connector -> idb-pconnector

While others would need adjusting / alternatives:

For the http transport I'm sure we could find a promise based alternative. The ssh transport is a little more tricky as ssh2 seems to only be event driven at the moment with no promise support.

abmusse avatar Mar 04 '21 18:03 abmusse

Hi @abmusse and @markdirish is this still under consideration? I would be very interested in using this with ODBC along with #320

brandonp42 avatar Oct 19 '23 00:10 brandonp42