@@ -12,21 +12,23 @@ import (
12
12
"github.com/gopherjs/gopherjs/js"
13
13
)
14
14
15
- var DefaultTransport RoundTripper = & XhrTransport {
16
- inflight : map [* Request ]* js.Object {},
17
- }
15
+ var DefaultTransport RoundTripper = & XHRTransport {}
18
16
19
- type XhrTransport struct {
17
+ type XHRTransport struct {
20
18
inflight map [* Request ]* js.Object
21
19
}
22
20
23
- func (t * XhrTransport ) RoundTrip (req * Request ) (* Response , error ) {
21
+ func (t * XHRTransport ) RoundTrip (req * Request ) (* Response , error ) {
24
22
xhrConstructor := js .Global .Get ("XMLHttpRequest" )
25
23
if xhrConstructor == js .Undefined {
26
24
return nil , errors .New ("net/http: XMLHttpRequest not available" )
27
25
}
28
26
xhr := xhrConstructor .New ()
29
27
xhr .Set ("responseType" , "arraybuffer" )
28
+
29
+ if t .inflight == nil {
30
+ t .inflight = map [* Request ]* js.Object {}
31
+ }
30
32
t .inflight [req ] = xhr
31
33
defer delete (t .inflight , req )
32
34
@@ -78,6 +80,8 @@ func (t *XhrTransport) RoundTrip(req *Request) (*Response, error) {
78
80
}
79
81
}
80
82
81
- func (t * XhrTransport ) CancelRequest (req * Request ) {
82
- t .inflight [req ].Call ("abort" )
83
+ func (t * XHRTransport ) CancelRequest (req * Request ) {
84
+ if xhr , ok := t .inflight [req ]; ok {
85
+ xhr .Call ("abort" )
86
+ }
83
87
}
0 commit comments