我有一个服务工作者,它能够从我们的服务器接收推送事件,到目前为止一切正常。当前版本的 Chrome 不支持接收到的通知中的数据负载。因此,我需要在推送事件发生后从服务器获取有关通知的信息(标题、文本、..)。
为了确保用户不会两次收到相同的通知,我将他尚未收到的“待处理”通知的 ID 保存在一个数组中。每次 service worker 对服务器执行 ping 操作时,都会从数组中取出最后一项并将其从数组中删除。
问题是,如果在发送过程中或服务工作者在获取通知时抛出任何异常,服务工作者会落后一个通知,这意味着如果只有一个新的待处理通知,则数组总是包含 2 个项目.
我该如何处理?