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.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
User reports network failure to load Stripe.js fails again after network is restored #518
User reports network failure to load Stripe.js fails again after network is restored #518
Changes from 8 commits
30157ae
072ac0a
e917010
157d06c
40a703e
7e75d1e
c24be62
ca49f7d
23dd26a
894a388
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmmmm, I forgot that
resolve
andreject
need to be passed as arguments. You'll need to persist the listeners at the module level alongside thelet stripePromise
declaration. E.g.When calling
removeEventListener()
, you would then reference theonLoadListener
andonErrorListener
variables already defined. (And definitely check to make sure they're truthy.) Does that make sense?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay and just to clarify
onLoadListener = onLoad(resolve, reject);
the instances ofonLoadListener
would stay equivalent even when it's assigned again on retry?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The key here is only assigning
onLoadListener
andonErrorListener
immediately beforescript.addEventListener()
. If you assign "lazily," then they will be successfully removed on the next invocation in case of an error.