asyncFromEvent

inline fun <E : Event, R : Any> CoroutineScope.asyncFromEvent(timeoutMillis: Long = -1, coroutineContext: CoroutineContext = EmptyCoroutineContext, priority: EventPriority = EventPriority.MONITOR, crossinline mapper: suspend E.(E) -> R?): Deferred<R>

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

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

See also

普通地监听一个事件

挂起当前协程, 并获取下一个事件实例

Parameters

timeoutMillis

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

coroutineContext
mapper

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