Implementation of Asynchronous Programming patterns and principles in Kotlin using Kotlin Coroutines.
- Timers, timeouts and EventEmitter:
- Asynchronous Programming with callbacks:
- NonBlocking Asynchronous Iteration:
- Asynchronous Programming with Promises:
- Asynchronous adapters: promisify, callbackify, asyncify:
- Asynchronous Data Collectors:
- Thenable:
- Concurrent Queue;
- Revealing Constructor:
- RevealingConstructor;
- Used in Collector/3-class.kt;
- Futures
- Deferred:
- Deferred;
- Used as part of kotlinx.coroutines instead of Promises in most cases;
- Actor Model:
- ActorModel;
- Observer and Observable:
- Observer;
- Asynchronous Function Composition:
- AsyncCompose.
Note that due to such features as strong typing, JVM multithreading, etc, we didn't implement some examples as is but modified it according to Kotlin programming traditions and practices.