У меня есть следующая функция, которая прослушивает события на сервере и выскакивает, когда они происходят -
private fun handleGroupCreatedAction() {
SignalRService.hubConnection?.on(Constants.groupCreatedAction, { modelResponse ->
// TODO - check why calling coroutine directly makes us not get the created action
Log.d("handleGroupCreated", "handleGroupCreatedAction")
viewModelScope.launch {
insertChat(GroupCreatedModel.toDatabaseEntity(modelResponse))
viewModelScope.launch {
modelResponse.members.forEach {
val groupId = modelResponse.groupId
val username = it.key
val userGroupRole = it.value
insertChatMembers(ChatMembersEntity(groupId, username, userGroupRole, Date().toString()))
}
}
}
}, GroupCreatedModel::class.java)
}
Как вы можете видеть в коде, я должен поставить журнал (или любой король кода для быть в этой строке) для того, чтобы код работал. Если это не так, код не будет продолжаться.
Почему это происходит? Это должно быть что-то, связанное с комбинацией Rx Java и сопрограмм, но я действительно понятия не имею, что мешает этому продолжаться.