MapAsync and MapThread are stateless and the first value emitted is after running the first coroutine/function. By adding an init argument the operator get's stateful with init as initial state.
Additionally explore the use of yield in the coroutine to emit values during the coroutine/function is running.