2
2
* Original XHRBackend does not parse response headers.
3
3
* So, I added parsing process on original one.
4
4
*/
5
- import { Injectable } from 'angular2/angular2' ;
6
- import { isPresent } from 'angular2/src/core/ facade/lang' ;
5
+ import { Injectable , Observable } from 'angular2/angular2' ;
6
+ import { isPresent } from 'angular2/src/facade/lang' ;
7
7
import {
8
8
ConnectionBackend ,
9
9
Connection ,
@@ -18,9 +18,6 @@ import {
18
18
BrowserXhr ,
19
19
} from 'angular2/http' ;
20
20
21
- // todo(robwormald): temporary until https://github.com/angular/angular/issues/4390 decided
22
- var Rx = require ( '@reactivex/rxjs/dist/cjs/Rx' ) ;
23
- var { Observable} = Rx ;
24
21
/**
25
22
* Creates connections using `XMLHttpRequest`. Given a fully-qualified
26
23
* request, an `XHRConnection` will immediately create an `XMLHttpRequest` object and send the
@@ -30,18 +27,17 @@ var {Observable} = Rx;
30
27
* the {@link MockConnection} may be interacted with in tests.
31
28
*/
32
29
export class XHRConnection implements Connection {
33
- request :Request ;
30
+ request : Request ;
34
31
/**
35
32
* Response {@link EventEmitter} which emits a single {@link Response} value on load event of
36
33
* `XMLHttpRequest`.
37
34
*/
38
- response :any ; // TODO: Make generic of <Response>;
39
- readyState :ReadyStates ;
40
-
41
- constructor ( req :Request , browserXHR :BrowserXhr , baseResponseOptions ?:ResponseOptions ) {
35
+ response : Observable < Response > ;
36
+ readyState : ReadyStates ;
37
+ constructor ( req : Request , browserXHR : BrowserXhr , baseResponseOptions ?: ResponseOptions ) {
42
38
this . request = req ;
43
39
this . response = new Observable ( responseObserver => {
44
- let _xhr :XMLHttpRequest = browserXHR . build ( ) ;
40
+ let _xhr : XMLHttpRequest = browserXHR . build ( ) ;
45
41
_xhr . open ( RequestMethods [ req . method ] . toUpperCase ( ) , req . url ) ;
46
42
// load event handler
47
43
let onLoad = ( ) => {
@@ -73,10 +69,7 @@ export class XHRConnection implements Connection {
73
69
} ;
74
70
// error event handler
75
71
let onError = ( err ) => {
76
- var responseOptions = new ResponseOptions ( {
77
- body : err ,
78
- type : ResponseTypes . Error
79
- } ) ;
72
+ var responseOptions = new ResponseOptions ( { body : err , type : ResponseTypes . Error } ) ;
80
73
if ( isPresent ( baseResponseOptions ) ) {
81
74
responseOptions = baseResponseOptions . merge ( responseOptions ) ;
82
75
}
@@ -98,7 +91,6 @@ export class XHRConnection implements Connection {
98
91
_xhr . abort ( ) ;
99
92
} ;
100
93
} ) ;
101
-
102
94
}
103
95
104
96
private parseHeaders ( xhr ) {
@@ -120,7 +112,7 @@ export class XHRConnection implements Connection {
120
112
* overridden if a different backend implementation should be used,
121
113
* such as in a node backend.
122
114
*
123
- * #Example
115
+ * ### Example
124
116
*
125
117
* ```
126
118
* import {Http, MyNodeBackend, HTTP_PROVIDERS, BaseRequestOptions} from 'angular2/http';
@@ -133,19 +125,16 @@ export class XHRConnection implements Connection {
133
125
* })
134
126
* class MyComponent {
135
127
* constructor(http:Http) {
136
- * http('people.json').subscribe(res => this.people = res.json());
128
+ * http.request ('people.json').subscribe(res => this.people = res.json());
137
129
* }
138
130
* }
139
131
* ```
140
132
*
141
133
**/
142
134
@Injectable ( )
143
135
export class XHRBackend implements ConnectionBackend {
144
- constructor ( private _browserXHR :BrowserXhr , private _baseResponseOptions :ResponseOptions ) {
145
- }
146
-
147
- createConnection ( request :Request ) :XHRConnection {
136
+ constructor ( private _browserXHR : BrowserXhr , private _baseResponseOptions : ResponseOptions ) { }
137
+ createConnection ( request : Request ) : XHRConnection {
148
138
return new XHRConnection ( request , this . _browserXHR , this . _baseResponseOptions ) ;
149
139
}
150
140
}
151
-
0 commit comments