SubscribeMessageRangeArgs
type SubscribeMessageRangeArgs = object;
此类型表示传递给 PanelExtensionContext.subscribeMessageRange 的参数。
属性
topic
topic: string;
要订阅的主题。
convertTo?
optional convertTo: string;
在传递给订阅者之前将消息转换为此模式。
订阅的 MessageEvents 将包含转换后的消息和一个包含原始消息事件的 originalMessageEvent
字段。如果未指定 convertTo
模式,则不会使用任何消息转换器。如果没有将原始模式转换为 convertTo
模式的消息转换器,则不会为此订阅传递任何消息。
onNewRangeIterator()
onNewRangeIterator: (batchIterator) => Promise<void>;
onNewRangeIterator
是一个函数,当订阅上有消息数据可用时,它会接收一个异步可迭代对象。
要读取消息,您的函数应该遍历提供的异步可迭代对象。可迭代对象的每个项目都是订阅主题的消息事件批次。这些批次和消息按_日志时间_顺序排列。当没有更多消息可读时,迭代器将结束。
async function onNewRangeIterator(batchIterator) {
for await (const batch of batchIterator) {
//...
}
}
当上游主题数据发生变化时,会再次调用 onNewRangeIterator
。例如,订阅用户脚本输出主题时用户脚本发生变化,或订阅别名主题时别名发生变化。当主题数据发生变化时,之前的迭代器将结束,其数据不再有效。当调用 onNewRangeIterator
时,您应该丢弃之前接收的数据。
如果您的 onNewRangeIterator
函数抛出错误,迭代器将结束,在再次调用 onNewRangeIterator
之前,您将不会收到任何更多消息。您的错误将显示在问题侧边栏中,以便用户查看。
参数
参数 | 类型 |
---|---|
batchIterator | AsyncIterable<Immutable<MessageEvent[]>> |
返回
Promise
<void
>
onReset()?
optional onReset: (batchIterator) => Promise<void>;
参数
参数 | 类型 |
---|---|
batchIterator | AsyncIterable<Immutable<MessageEvent[]>> |
返回
Promise
<void
>
已弃用
此方法已重命名。使用 onNewRangeIterator
。