getResolver(method, args, context) {
		return function(resolve, reject) {
			args.push(function(err) {
				if (err) return reject(err)
				let receivedArgs = [...Array.from(arguments)]
				// remove the first argument for error
				receivedArgs.shift()
				resolve(receivedArgs.length > 1 ? receivedArgs : receivedArgs[0])
			})
			method.apply(context, args)
		}
	}
getResolver
@param  {Function} method  
@param  {Object} args    
@param  {Object} context 
@return {Function}