File tree 1 file changed +5
-6
lines changed
1 file changed +5
-6
lines changed Original file line number Diff line number Diff line change @@ -3,29 +3,28 @@ var pushable = require('pull-pushable')
3
3
4
4
module . exports = function ( ) {
5
5
var listeners = [ ]
6
+ var closed = false
6
7
7
8
function notify ( message ) {
8
9
// notify by pushing to all listeners
9
10
for ( var i = 0 ; i < listeners . length ; i ++ ) {
11
+ if ( closed ) return message
10
12
listeners [ i ] . push ( message )
11
13
}
12
14
return message
13
15
}
14
16
15
17
notify . listen = function ( ) {
16
18
// create listener with `onClose` handler
17
- var listener = pushable ( function onClose ( ) {
18
- // if listener is found, delete from list
19
- var index = listeners . indexOf ( listener )
20
- if ( index !== - 1 ) listeners . splice ( index , 1 )
21
- } )
19
+ var listener = pushable ( )
22
20
listeners . push ( listener )
23
21
return listener
24
22
}
25
23
26
24
notify . abort = function ( err ) {
27
25
// abort by ending all listeners
28
- while ( listeners . length ) listeners [ 0 ] . end ( err )
26
+ closed = true
27
+ while ( listeners . length ) listeners . shift ( ) . end ( err )
29
28
}
30
29
31
30
notify . end = function ( ) {
You can’t perform that action at this time.
0 commit comments