@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
timeoutMillis
- 超时. 单位为毫秒. -1
为不限制.
mapper
- 过滤转换器. 返回非 null 则代表得到了需要的值. syncFromEvent 会返回这个值
TimeoutCancellationException
- 在超时后抛出.
Throwable
- 当 mapper 抛出任何异常时, 本函数会抛出该异常
See Also