Latest version : 1.0.0

 Last updated on 2019-01-01T03:29:13.374Z

 Keywords : async, build, callback, create, done, fn, function, make, sync, thunk, thunkify, wrap, wrapper

 Downloads :

  • 19 in Last Month

 Links :


See Examples For :


always-thunk The MIT License

Create thunk from async or sync function. Works like thunkify.

code climate standard code style travis build status coverage status dependency status


npm i always-thunk --save
npm test


For more use-cases see the tests

var fs = require('fs')
var alwaysThunk = require('always-thunk')

var readFile = alwaysThunk(fs.readFile)
readFile('./package.json', 'utf8')(function (err, res) {
  console.log(err) //=> null
  console.log(res) //=> package.json content

var readFileSync = alwaysThunk(fs.readFileSync)
readFileSync('./package.json', 'utf8')(function (err, res) {
  console.log(err) //=> null
  console.log(res) //=> package.json content


  • always-promise: Create Bluebird Promise from given async or synchronous function. It automatically convert sync functions to async, then to promise.
  • 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.
  • handle-callback: Make promise to have support for callback api, it returns promise in that same time.
  • make-callback: Make synchronous function to support callback api
  • 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 guidelines.

Charlike Make Reagent new message to charlike freenode #charlike keybase tunnckocore tunnckoCore npm tunnckoCore twitter tunnckoCore github