@SinceMirai("0.39.0") suspend inline fun <reified E : Event, R : Any> syncFromEventOrNull(timeoutMillis: Long, crossinline mapper: suspend E.(E) -> R?): R?
挂起当前协程, 监听这个事件, 并尝试从这个事件中获取一个值, 在超时时返回 null
timeoutMillis
- 超时. 单位为毫秒. -1
为不限制
mapper
- 过滤转换器. 返回非 null 则代表得到了需要的值.
Throwable
- 当 mapper 抛出任何异常时, 本函数会抛出该异常
Return
超时返回 null
, 否则返回 mapper 返回的第一个非 null
值.
See Also