Call asynchronous methods at the same time, execute only once, and share the result
var asyncShare = require('async-share')
var oldMethod = function (a) {
// return a Promise instance
}
var newMethod = asyncShare(oldMethod)
newMethod(1)
newMethod(2)