suspend inline fun <reified P : ContactMessage> P.nextMessageOrNull(timeoutMillis: Long = -1, crossinline filter: suspend P.(P) -> Boolean): MessageChain?
挂起当前协程, 等待下一条 MessagePacket.sender 和 MessagePacket.subject 与 this 相同且通过 筛选 的 MessagePacket
若 filter 抛出了一个异常, 本函数会立即抛出这个异常.
timeoutMillis
- 超时. 单位为毫秒. -1
为不限制
filter
- 过滤器. 返回非 null 则代表得到了需要的值. syncFromEvent 会返回这个值
Return
消息链. 超时时返回 null
See Also
suspend fun <reified P : ContactMessage> P.nextMessageOrNull(timeoutMillis: Long = -1): MessageChain?
挂起当前协程, 等待下一条 MessagePacket.sender 和 MessagePacket.subject 与 this 相同的 MessagePacket
若 filter 抛出了一个异常, 本函数会立即抛出这个异常.
timeoutMillis
- 超时. 单位为毫秒. -1
为不限制
Return
消息链. 超时时返回 null
See Also