我的webapp中有几个开放的Twilio IP消息传递通道。然后我尝试按顺序使用updateLastConsumedMessageIndex
更新几个开放渠道的消费范围。我通过处理updateLastConsumedMessageIndex
来处理.then
返回的Promise,并且then
处理程序中的通道数据表明请求未得到满足,因为channel的lastConsumedMessageIndex仍然是旧的。
可以通过递归调用updateLastConsumedMessageIndex
来解决此问题,直到消费范围更新为止。
示例代码:
function updateChannelConsumptionHorizon (channel) {
let lastMessageIndex = channel.messages[channel.messages.length - 1].index
channel.updateLastConsumedMessageIndex(lastMessageIndex).then(channel => {
if (channel.lastConsumedMessageIndex !== lastMessageIndex) {
setTimeout(() => {
updateChannelConsumptionHorizon(channel)
}, 100)
}
})
}
有趣的是,第一次呼叫updateChannelConsumptionHorizon
不需要多次尝试,而后续呼叫最多可以尝试60次更新消费范围。