Как ограничить дополнительные HTTP-запросы и обмениваться ответами на запросы, сделанные в течение установленного периода? - PullRequest
0 голосов
/ 01 ноября 2018

Мне нужно ограничить, сколько раз HTTP-запрос может быть сделан за определенный период времени. Так, например, первый сделанный вызов отправит запрос, но , если в течение установленного периода времени (3 секунды) будет сделан другой запрос, тогда я хочу поделиться ответом, а не делать другой запрос HTTP . Принимая во внимание, что если второй запрос сделан после установленного периода времени, то просто отправьте новый запрос.

Мое текущее понимание (не стесняйтесь поправлять меня, поскольку я, вероятно, ошибаюсь) таково:

  • debounceTime не поможет, так как задерживает первый запрос на определенный временной период. Принимая во внимание, что я не хочу откладывать первый запрос, я хочу, чтобы он был отправлен немедленно и любые будущие запросы были сделаны в установленный период времени, чтобы поделиться ответом.
  • throttleTime не поможет, так как просто задерживает второй запрос
  • shareReplay не поможет, так как все будущие запросы являются общими, даже если они сделаны через 10 минут

То, что я ищу, - это сочетание throttleTime и shareReplay, где я могу настроить период времени, и первый запрос будет отправлен сразу, но любые будущие запросы, сделанные в течение этого периода, просто передают ответ первого. По истечении периода времени (3 секунды) следующий запрос отправит новый HTTP-запрос.

...