@@ -48,6 +48,12 @@ type Reject = (err: any) => void;
48
48
* the options for each iteration.
49
49
*/
50
50
export default class StreamToAsyncIterator < TVal > {
51
+ _stream : Readable ;
52
+ _error: ?Error ;
53
+ _state: Symbol ;
54
+ _size: ?number ;
55
+ _rejections: Set < Reject > ;
56
+
51
57
/**
52
58
* @param {Readable } stream
53
59
* @param {StreamToAsyncIterator~Options } [options]
@@ -65,7 +71,7 @@ export default class StreamToAsyncIterator<TVal> {
65
71
* @private
66
72
* @type {?Error }
67
73
*/
68
- this . _error = null ;
74
+ this . _error = undefined ;
69
75
70
76
/**
71
77
* The current state of the iterator (not readable, readable, ended, errored)
@@ -103,12 +109,6 @@ export default class StreamToAsyncIterator<TVal> {
103
109
stream . once ( 'end' , handleStreamEnd ) ;
104
110
}
105
111
106
- _stream: Readable;
107
- _error: ?Error;
108
- _state: Symbol;
109
- _size: ?number;
110
- _rejections: Set< Reject > ;
111
-
112
112
//todo: flow is not working with this method in place
113
113
// [Symbol.asyncIterator]() {
114
114
// return this;
@@ -125,16 +125,16 @@ export default class StreamToAsyncIterator<TVal> {
125
125
126
126
//need to wait until the stream is readable or ended
127
127
try {
128
- await Promise . race ( [ read . promise , end . promise ] ) ;
129
- return this . next ( ) ;
128
+ await Promise . race ( [ read . promise , end . promise ] ) ;
129
+ return this . next ( ) ;
130
130
}
131
131
catch ( e ) {
132
- throw e
132
+ throw e ;
133
133
}
134
134
finally {
135
- //need to clean up any hanging event listeners
136
- read . cleanup ( )
137
- end . cleanup ( )
135
+ //need to clean up any hanging event listeners
136
+ read . cleanup ( ) ;
137
+ end . cleanup ( ) ;
138
138
}
139
139
} else if ( this . _state === states . ended ) {
140
140
return { done : true } ;
@@ -164,15 +164,15 @@ export default class StreamToAsyncIterator<TVal> {
164
164
//let is used here instead of const because the exact reference is
165
165
//required to remove it, this is why it is not a curried function that
166
166
//accepts resolve & reject as parameters.
167
- let eventListener = null ;
167
+ let eventListener = undefined ;
168
168
169
169
const promise = new Promise ( ( resolve , reject ) => {
170
170
eventListener = ( ) => {
171
171
this . _state = states . readable ;
172
172
this . _rejections . delete ( reject ) ;
173
173
174
- // we set this to null to info the clean up not to do anything
175
- eventListener = null ;
174
+ // we set this to undefined to info the clean up not to do anything
175
+ eventListener = undefined ;
176
176
resolve ( ) ;
177
177
} ;
178
178
@@ -187,7 +187,7 @@ export default class StreamToAsyncIterator<TVal> {
187
187
this . _stream . removeListener ( 'readable' , eventListener ) ;
188
188
} ;
189
189
190
- return { cleanup , promise }
190
+ return { cleanup , promise } ;
191
191
}
192
192
193
193
/**
@@ -196,14 +196,14 @@ export default class StreamToAsyncIterator<TVal> {
196
196
* @returns {Promise }
197
197
*/
198
198
_untilEnd ( ) : PromiseWithCleanUp < void > {
199
- let eventListener = null ;
199
+ let eventListener = undefined ;
200
200
201
201
const promise = new Promise ( ( resolve , reject ) => {
202
202
eventListener = ( ) => {
203
203
this . _state = states . ended ;
204
204
this . _rejections . delete ( reject ) ;
205
205
206
- eventListener = null
206
+ eventListener = undefined ;
207
207
resolve ( ) ;
208
208
} ;
209
209
@@ -216,7 +216,7 @@ export default class StreamToAsyncIterator<TVal> {
216
216
this . _stream . removeListener ( 'end' , eventListener ) ;
217
217
} ;
218
218
219
- return { cleanup, promise }
219
+ return { cleanup, promise } ;
220
220
}
221
221
}
222
222
0 commit comments