我在Angular v6
中面临一种奇怪的行为。订阅时可能丢失了一些大东西。
只要刷新令牌过期(在不使用该应用程序的空闲时间后),该应用程序replays
就会处理所有先前的http事件。
以下是我要重现此问题的方法。
N
http呼叫(GET, POST and DELETE
)firebase refresh auth token
indexedDB中删除firebaseLocalStorage
。第2步触发并重播我在第1步中进行的所有http调用。
但是它不应该重播所有过去的http事件。可能是什么原因?
我的http拦截器代码在https://gist.github.com/kumar-muthu/87c1404d3da48702739183e8d2c6e7d5
中注意:我不会退订http的可观察对象,因为我假设一旦收到http响应,Angular httpclient就会关闭订阅。
答案 0 :(得分:0)
问题出在拦截器上。我已经订阅了令牌,而不仅仅是获取最新的令牌。因此,每次令牌更改时,所有先前的http请求都会再次重播。