File tree Expand file tree Collapse file tree 1 file changed +16
-6
lines changed Expand file tree Collapse file tree 1 file changed +16
-6
lines changed Original file line number Diff line number Diff line change @@ -174,13 +174,15 @@ class EventSource {
174174 }
175175
176176 _handleEvent ( response ) {
177- const parts = response . substr ( this . lastIndexProcessed ) . split ( '\n' ) ;
178-
179- const indexOfDoubleNewline = response . lastIndexOf ( '\n\n' ) ;
180- if ( indexOfDoubleNewline != - 1 ) {
181- this . lastIndexProcessed = indexOfDoubleNewline + 2 ;
177+ const indexOfDoubleNewline = this . _getLastDoubleNewlineIndex ( response ) ;
178+
179+ if ( indexOfDoubleNewline <= this . lastIndexProcessed ) {
180+ return ;
182181 }
183-
182+
183+ const parts = response . substring ( this . lastIndexProcessed , indexOfDoubleNewline ) . split ( '\n' ) ;
184+ this . lastIndexProcessed = indexOfDoubleNewline ;
185+
184186 let data = [ ] ;
185187 let retry = 0 ;
186188 let line = '' ;
@@ -219,6 +221,14 @@ class EventSource {
219221 }
220222 }
221223
224+ _getLastDoubleNewlineIndex ( response ) {
225+ const lastIndex = response . lastIndexOf ( '\n\n' ) ;
226+ if ( lastIndex === - 1 ) {
227+ return - 1 ;
228+ }
229+ return lastIndex + 2 ;
230+ }
231+
222232 addEventListener ( type , listener ) {
223233 if ( this . eventHandlers [ type ] === undefined ) {
224234 this . eventHandlers [ type ] = [ ] ;
You can’t perform that action at this time.
0 commit comments