android10 / Android-CleanArchitecture-Kotlin

This is a movies sample app in Kotlin, which is part of a serie of blog posts I have written about architecting android application using different approaches.
https://fernandocejas.com/2018/05/07/architecting-android-reloaded/
4.69k stars 935 forks source link

Questions: How to combine multiple UseCase? #111

Open rommansabbir opened 3 years ago

rommansabbir commented 3 years ago

Scenario:

Right now, I'm doing it by calling the 1st UseCase, then based on response, then another & so on.

So, how can I combine/zip them all in a single request or chain them one by one in a proper way?

pankajpy commented 3 years ago

This can be solved by Coroutines, Async and Await

CoroutineScope(Main){ val stock1 = async(IO){ getStock1() // Api Call }val stock2 = async(IO){ getStock2() // Api Call }val total = stock1.await() + stock2.await() Log.i(“total”, total) }

On Thu, May 20, 2021 at 7:38 PM Romman Sabbir @.***> wrote:

Scenario:

  • I have 3 UseCase to perform 3 different API Request.
  • Based on the 3 UseCase response I need to combine them all according to the business logic.

Right now, I'm doing it by calling the 1st UseCase, then based on response, then another & so on.

So, how can I combine/zip them all in a single request or chain them one by one in a proper way?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/android10/Android-CleanArchitecture-Kotlin/issues/111, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIYEFBVIEAECQ4J45LTOLTTOUJUXANCNFSM45HDCB7A .

--

Thanks, Pankaj

rommansabbir commented 3 years ago

@pankajpy actually, I'm talking about how to merge/combine multiple UseCase into one. Yes, I know how to merge multiple API calling using Coroutine but UseCase is missing in this scenario.

lrnrzg commented 3 years ago

Have a try to combine response in the Repository layer and then pass the Repository to a new UseCase.

rommansabbir commented 3 years ago

@ZhuSniffsTheRose Yes got your point. But the scenario is:

Now, I can call all required api one by one in a single use by adding their dependency, but I want to combine merge/combine multiple UseCase into one.