Useful when we want to imply an asynchronous representation onto some non-promise object.
Having that target object can be combined into promise chains or async/await syntax. One use case would be turning a stream instance so it's also a promise.
npm install 2-thenable
Utility takes target
and promise
arguments. target
is object to be extended with then
, catch
and finally
methods.
While promise
is expected to be a native promise instance that reflects resolution which should be mapped onto target
Example of converting stream to thenable
const toThenable = require("2-thenable");
// Example of converting a simple utf8 string stream to thenable
toThenable(stream, new Promise((resolve, reject) => {
let result = '';
stream.on('error', reject);
stream.on('data', data => (result += data));
stream.on('end', () => resolve(result));
});
stream.then(result => {
console.log("Cumulated string data", result);
});
npm test