flatMap<A, B> function
- Task<
B> fn(- A
Flat-maps over a Task by applying the provided function fn
to its result.
Given a function fn
that takes a value of type A
and returns a Task of type B
,
and a Task that will eventually produce a value of type A
,
this function returns a new Task that will eventually produce a value of type B
.
Example:
Task<int> sampleTask = Task(() => Future.value(5));
Task<String> flatMappedTask = flatMap<int, String>((int value) => Task(() => Future.value('Value is: $value')))(sampleTask);
Implementation
Task<B> Function(Task<A> task) flatMap<A, B>(Task<B> Function(A) fn) =>
(Task<A> task) =>
Task<B>(() async => (await (fn(await task.task())).task()));