executeUseCase<I, O> method
void
executeUseCase<I, O>(
- UseCase<
I, O> useCase, - I params, {
- BroadcastStream<
O> ? broadcastStream, - StreamController<
O> ? controller,
this method execute future and add result in your controller
Implementation
void executeUseCase<I, O>(UseCase<I, O> useCase, I params,
{BroadcastStream<O>? broadcastStream, StreamController<O>? controller}) {
//CHECK INPUT (ONE SOURCE AND ONE DESTINATION)
assert(params != null);
assert((broadcastStream == null && controller != null) ||
(broadcastStream != null && controller == null));
//ADD ONE OF THE TWO CONTROLLERS
dynamic _controller;
if (broadcastStream != null) {
_controller = broadcastStream.controller;
} else if (controller != null) {
_controller = controller;
}
controllers.add(_controller);
//EXECUTE USECASE
useCase
.execute(params)
.then((result) => _controller.add(result))
.catchError((error) => _controller.addError(error));
}