mirai-core / net.mamoe.mirai.event / kotlinx.coroutines.CoroutineScope / asyncFromEvent

asyncFromEvent

@SinceMirai("0.39.0") inline fun <reified E : Event, R : Any> CoroutineScope.asyncFromEvent(timeoutMillis: Long = -1, coroutineContext: CoroutineContext = EmptyCoroutineContext, crossinline mapper: suspend E.(E) -> R?): Deferred<R>

异步监听这个事件, 并尝试从这个事件中获取一个值.

mapper 抛出的异常将会被传递给 Deferred.await 抛出.

Parameters

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

coroutineContext - 额外的 CoroutineContext

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