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 抛出了一个异常, 本函数会立即抛出这个异常.

See also

实现原理

Parameters

timeoutMillis

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

filter

过滤器. 过滤器函数返回 true 表示拦截并返回此 MessageEvent. 返回 false 表示忽略该事件并继续监听下一个事件.


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

See also

Parameters

timeoutMillis

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

priority

事件优先级. 查看 EventChannel.subscribe 以获得更多帮助.

intercept

是否拦截, 传入 true 时表示拦截此事件不让接下来的监听器处理, 传入 false 时表示让接下来的监听器处理

filter

过滤器. 过滤器函数返回 true 表示拦截并返回此 MessageEvent. 返回 false 表示忽略该事件并继续监听下一个事件.