【发布时间】:2018-12-23 04:59:46
【问题描述】:
我的问题与如何“如何等待 observable 完成”不同。我已经通过使用 switchMap 在我的代码中解决了这个问题。目前我有一个 api get 调用,在执行 httpget 之前,它会检查 refreshToken 是否已过期,在这种情况下,它将生成一个新令牌并等待它然后执行 httpget,这很棒。
我的问题是,如果我有以下情况:
this.getUsers();
this.getLocations();
让我们以令牌需要刷新的情况为例(我们需要等待刷新): 首先我们调用 this.getUsers() 这将触发创建一个新的令牌,并且在创建令牌后获取用户。 同时,我们还调用 this.getLocations() ,它也将触发创建一个新令牌,并且不会等待第一个 get 完成。我需要找到一种方法,让第二个 get 等待第一个 get 完成,以便两者都使用相同的新令牌。
【问题讨论】:
-
你的意思是在执行第二个请求之前等待第一个请求完成?
-
它们是独立的请求,但是如果第一个等待令牌完成,第二个获取也应该等待它而不是要求新的令牌
-
我认为您要做的是在触发两个请求之前先检查您的令牌是否过期。如果您的令牌已过期,您要避免请求的一件事是存储您的令牌过期时间和日期。