Ich habe zwei Suspend-Funktionen:
suspend fun sendData() : Boolean
suspend fun awaitAcknowledge() : Boolean
und ich möchte sie in eine dritte Suspend-Funktion packen, in der sie parallel ausgeführt werden sollen, und ich möchte das Endergebnis berechnen, indem ich beide Rückgabewerte habe:
suspend fun sendDataAndAwaitAcknowledge() : Boolean {
// TODO execute both in parallel and compare both results
}
Aber wenn ich das so schreibe,
suspend fun sendDataAndAwaitAcknowledge() : Boolean {
val sendResult = sendData()
val receiveAck = awaitAcknowledge()
}
Die Funktionen werden in einer seriellen Reihenfolge ausgeführt, was in meinem Fall nicht funktioniert.
Von RxJava kommend möchte ich so etwas erreichen zip
Operator:
Single.zip(awaitAcknowledge(), sendData(), {receiveAck, sendResult -> ...})
Wie kann ich das mit Coroutines
?