Investigate supporting Promises and Callbacks
...
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
odbcpackage. 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
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.
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:
- ssh traspont (ssh2 package)
- http transport (http.request)
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.
Hi @abmusse and @markdirish is this still under consideration? I would be very interested in using this with ODBC along with #320