Slide 7
Slide 7 text
Confidential Kotlin Coroutines in-depth analysis
// Welcome to Async Hell
1. fun put(id: String, user: User, callback: () -> Unit)
2. fun getMemory(id: String, callback: (User?) -> Unit)
3. fun getPersistent(id: String, callback: (User?) -> Unit)
4. fun getCloud(id: String, callback: (User?) -> Unit)
5.
6. fun getData(id: String, callback: (User?) -> Unit) {
7. getMemory(id) { memoryData ->
8. if (memoryData != null) return@getMemory callback(memoryData)
9. getPersistent(id) { dbData ->
10. if (dbData != null) {
11. put(id, dbData) { return@put callback(dbData) }
12. }
13. getCloud(id) { cloudData ->
14. if (cloudData != null) {
15. put(id, cloudData) { return@put callback(cloudData) }
16. } else {
17. return@getCloud callback(null)
18. }
19. }}}} // yeah... code doesn't fit presentation screen