Make promise to have support for callback api, it returns promise in that same time.
npm i handle-callback --save
npm test
For more use-cases see the tests
var handleCallback = require('handle-callback')
var got = require('then-got')
function hybridGot (url, callback) {
var promise = got(url)
if (callback) {
promise = handleCallback(promise, callback)
}
return promise
}
hybridGot('https://github.com')
.then(function (res) {
console.log(res[0])
//=> html content of the page
})
.catch(console.error)
// or both in same time
hybridGot('https://github.com', function (err, res) {
console.log(err) //=> null
console.log(res[0]) //=> html of page
})
.then(function (res) {
console.log(res[0]) //=> html of page
})
.catch(console.error)
- make-callback: Make synchronous function to support callback api
- always-callback: Create callback api for given sync function. Guarantee that given function (sync or async, no matter) will always have callback api and will handle errors correctly.
- always-promise: Create Bluebird Promise from given async or synchronous function. It automatically convert sync functions to async, then to promise.
- hybridify: Building hybrid APIs. You can use both callback and promise in same time.
- handle-arguments: Handles given Arguments object - return separatly last argument (commonly callback) and other arguments as Array. Useful in node-style callback flow.
- manage-arguments: Prevents arguments leakage - managing arguments. From Optimization killers by Petka Antonov.
- promise2thunk: Convert (transform) promise to thunk, just like was in co@3
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
But before doing anything, please read the CONTRIBUTING.md guidelines.