map<R>  method 
Transform data if available
Implementation
RxFuture<R> map<R>(R Function(T data) mapper) {
  final result = RxFuture<R>();
  addListener(() {
    if (hasData) {
      try {
        result.trySetData(mapper(data as T));
      } catch (e, stack) {
        result.setError(e, stack);
      }
    } else if (hasError) {
      result.setError(error!, stackTrace);
    } else {
      result.setLoading();
    }
  });
  return result;
}