Promises are great for prototyping, but have significant overhead (
http://thanpol.as/javascript/promises-a-performance-hits-you...) for some high performance APIs it may be advisable to use async.
Async also supports nodejs callback patterns which can reduce the need for wrappers (promisify)