on develop help sign in
Use onSync for handling XHR onreadystatechange

This change prevents multiple firings of the response event. Fixes GitHub issue #467 Supersedes GitHub PR #255

commit1facfef9aa6277913540023497e7257701af1fd7 authorTom Smalley <tfsmalley@gmail.com> dateTue 7 Jul 2020, 13:19 (6 years ago) parente2b8460
1 file changed+2−2
reflex-dom-core/src/Reflex/Dom/Xhr/Foreign.hs+2−2
reflex-dom-core/src/Reflex/Dom/Xhr/Foreign.hs+2−2
@@ -15,7 +15,7 @@ import Data.Text (Text)
1515import Data.ByteString (ByteString)
1616import Foreign.JavaScript.Utils (bsFromMutableArrayBuffer, bsToArrayBuffer)
1717import GHCJS.DOM.Enums
18−import GHCJS.DOM.EventM (EventM, on)
18+import GHCJS.DOM.EventM (EventM, on, onSync)
1919import GHCJS.DOM.EventTarget (dispatchEvent)
2020import GHCJS.DOM.Types (MonadJSM, ToJSString, FormData, Document, Blob (..), ArrayBuffer (..), JSVal, JSM, IsEvent, XMLHttpRequestProgressEvent, ProgressEvent, Event, XMLHttpRequestUpload, FromJSString, ArrayBufferView (..), liftJSM, castTo)
2121import GHCJS.DOM.XMLHttpRequest
@@ -114,7 +114,7 @@ xmlHttpRequestOntimeout :: XMLHttpRequest -> EventM XMLHttpRequest ProgressEvent
114114xmlHttpRequestOntimeout = (`on` timeout)
115115
116116xmlHttpRequestOnreadystatechange :: XMLHttpRequest -> EventM XMLHttpRequest Event () -> JSM (JSM ())
117−xmlHttpRequestOnreadystatechange = (`on` readyStateChange)
117+xmlHttpRequestOnreadystatechange = (`onSync` readyStateChange)
118118
119119xmlHttpRequestSetTimeout :: MonadJSM m => XMLHttpRequest -> Word -> m ()
120120xmlHttpRequestSetTimeout = setTimeout