multiple_result_async 0.0.1 copy "multiple_result_async: ^0.0.1" to clipboard
multiple_result_async: ^0.0.1 copied to clipboard

Provide methods to handle Result mapping and chaining with asynchronous operations.

example/multiple_result_async_example.dart

import 'package:multiple_result/multiple_result.dart';
import 'package:multiple_result_async/multiple_result_async.dart';

Future<Result<String, Exception>> getSomething() async {
  await Future.delayed(const Duration(seconds: 1));
  return const Success('Foo');
}

Future<String> getSomeString() async {
  return 'Bar';
}

Future<Result<String, Exception>> getSomeStringResult() async {
  return await getSomeString().toResultOrError<Exception>();
}

Future<Result<int, Exception>> getSomeStringLengthResult() async {
  return await getSomeStringResult().next(onSuccess: (final value) async {
    return Success(value.length);
  }, onError: (final error) async {
    return Error(error);
  },);
}

void main() async {
  // Sample 1
  final result = await getSomething().next(
    onSuccess: (final value) {
      print('onSuccess: $value');
      return Success(value);
    },
    onError: (final error) {
      print('onError: $error');
      return Error(error);
    },
  );
  print('Result: $result');

  // Sample 2
  final resultStringLength = await getSomeStringLengthResult().next(
    onSuccess: (final value) {
      print('onSuccess: $value');
      return Success(value);
    },
    onError: (final error) {
      print('onError: $error');
      return Error(error);
    },
  );
  print('Result String Length: $resultStringLength');

  // Sample 3
  final resultStringLength2 = await getSomeString()
      .toResultOrError<Exception>()
      .next(onSuccess: (final value) {
    return Success(value.length);
  },).next(onSuccess: (final value) {
    print('onSuccess: $value');
    return Success(value);
  }, onError: (final error) {
    print('onError: $error');
    return Error(error);
  },);
  print('Result String Length 2: $resultStringLength2');
}
0
likes
0
points
29
downloads

Publisher

verified publisherdig.dev.br

Weekly Downloads

Provide methods to handle Result mapping and chaining with asynchronous operations.

Repository (GitHub)
View/report issues

Topics

#result #utility

License

unknown (license)

Dependencies

multiple_result

More

Packages that depend on multiple_result_async