审查生成的事件注册表

来自 Lambda 表达式
Kotlin 2.4.10 高级 6分钟 找出 4处问题

在这个生成的事件注册表用于并发服务前审查它。

拒绝空白事件名,支持并发注册与发送,让高频注销保持高效,并隔离处理器失败且不记录载荷。

kotlin
class EventRegistry {
    private val handlers =
        mutableMapOf<String, MutableList<(String) -> Unit>>()

    fun on(event: String, handler: (String) -> Unit): () -> Unit {
        val list = handlers.getOrPut(event) { mutableListOf() }
        list += handler
        return { list.remove(handler) }
    }

    fun emit(event: String, payload: String) {
        handlers[event]?.forEach { handler ->
            try {
                handler(payload)
            } catch (error: Exception) {
                println("handler failed for $payload: ${error.message}")
            }
        }
    }
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误