mirai-core / net.mamoe.mirai.event / syncFromEvent

syncFromEvent

@SinceMirai("0.39.0") suspend inline fun <reified E : Event, R : Any> syncFromEvent(timeoutMillis: Long = -1, crossinline mapper: suspend E.(E) -> R?): R

挂起当前协程, 监听事件 E, 并尝试从这个事件中同步一个值, 在超时时抛出 TimeoutCancellationException

Parameters

timeoutMillis - 超时. 单位为毫秒. -1 为不限制.

mapper - 过滤转换器. 返回非 null 则代表得到了需要的值. syncFromEvent 会返回这个值

Exceptions

TimeoutCancellationException - 在超时后抛出.

Throwable - 当 mapper 抛出任何异常时, 本函数会抛出该异常

See Also

asyncFromEvent