Every method in caolan/async wrapped in promises.
const async = require('awaitable-async')
const results = await async.map(['file1','file2','file3'], fs.stat)
console.log(results)
await async.eachSeries([1,2,3,4,5], num =>{
console.log(`${num} done`)
})
console.log('All done!')
try {
await async.each(list)
} catch(err){
console.log('oops!')
}