nextMessage
inline suspend fun <P : MessageEvent> P.nextMessage(timeoutMillis: Long = -1, priority: EventPriority = EventPriority.MONITOR, noinline filter: suspend P.(P) -> Boolean = { true }): MessageChain
挂起当前协程, 等待下一条语境与 this 相同且通过 筛选 的 MessageEvent. 有关语境的定义可查看 isContextIdenticalWith.
若 filter 抛出了一个异常, 本函数会立即抛出这个异常.
Parameters
timeoutMillis
超时. 单位为毫秒. -1
为不限制
filter
过滤器. 过滤器函数返回 true
表示拦截并返回此 MessageEvent. 返回 false
表示忽略该事件并继续监听下一个事件.
See also
实现原理
inline suspend fun <P : MessageEvent> P.nextMessage(timeoutMillis: Long = -1, priority: EventPriority = EventPriority.HIGH, intercept: Boolean = false, noinline filter: suspend P.(P) -> Boolean = { true }): MessageChain
挂起当前协程, 等待下一条语境与 this 相同且通过 筛选 的 MessageEvent, 并且拦截该事件. 有关语境的定义可查看 isContextIdenticalWith. 有关拦截的说明可查看 Event.intercept.
若 filter 抛出了一个异常, 本函数会立即抛出这个异常.
Since
2.13
Parameters
timeoutMillis
超时. 单位为毫秒. -1
为不限制
priority
事件优先级. 查看 EventChannel.subscribe 以获得更多帮助.
intercept
是否拦截, 传入 true
时表示拦截此事件不让接下来的监听器处理, 传入 false
时表示让接下来的监听器处理
filter
过滤器. 过滤器函数返回 true
表示拦截并返回此 MessageEvent. 返回 false
表示忽略该事件并继续监听下一个事件.