fix: Avoid requesting the same image more than once [SQSERVICES-1985] #14924
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The problem
When the app first loads, when a conversation is displayed there are
n
avatar requests that are sent at the same time.Those trigger
n
actual network request and some of them are targeting the same image.This ends up in duplicate requests that are hitting backend and eventually putting the webapp in a rate limit state.
The solution
instead of caching the image only when the request is successful, we cache the promise of the request as soon as the request is fired. This way any subsequent request will then get the cached promise and will avoid sending the request on the network
Before
After