function fail(err, callback) {
  if (!_.isFunction(callback)) return
  let uError = new Error('Unknown Error')
  err = err ? _.isError(err) ? err : _.isString(err) ? new Error(err) : uError : uError
  process.nextTick(function () { callback(err) })
}
function fail(err, callback) {
  if (!_.isFunction(callback)) return
  let uError = new Error('Unknown Error')
  err = err ? _.isError(err) ? err : _.isString(err) ? new Error(err) : uError : uError
  process.nextTick(function () { callback(err) })
}
function fail ( err , callback ) { if ( ! _ . isFunction ( callback ) ) return let uError = new Error ( 'Unknown Error' ) err = err ? _ . isError ( err ) ? err : _ . isString ( err ) ? new Error ( err ) : uError : uError process . nextTick ( function ( ) { callback ( err ) } ) }
wrap async error callback
wrap async error callback