File tree Expand file tree Collapse file tree 1 file changed +18
-2
lines changed
Expand file tree Collapse file tree 1 file changed +18
-2
lines changed Original file line number Diff line number Diff line change @@ -10,18 +10,34 @@ import { HeosConnection } from './heosConnection'
1010import { HeosResponse , HeosEvent } from '../types'
1111
1212function createHeosSocket ( address : string , responseParser : ResponseParser ) : Promise < Socket > {
13+ let hasResolvedOrRejected : boolean = false
14+
1315 return new Promise ( ( resolve , reject ) => {
1416 const host : string = address
1517 const port : number = DEFAULT_PORT
1618
1719 try {
1820 const socket : Socket = createConnection ( { port, host, localPort : 0 } , ( ) => {
21+ hasResolvedOrRejected = true
1922 resolve ( socket )
2023 } )
2124
2225 socket . on ( 'data' , ( data : string ) => responseParser . put ( data ) )
23- socket . on ( 'timeout' , ( ) => socket . end ( ) )
24- socket . on ( 'error' , console . error )
26+ socket . on ( 'timeout' , ( ) => {
27+ if ( ! hasResolvedOrRejected ) {
28+ socket . end ( )
29+ hasResolvedOrRejected = true
30+ reject ( new Error ( 'Socket timeout' ) )
31+ }
32+ } )
33+ socket . on ( 'error' , error => {
34+ if ( ! hasResolvedOrRejected ) {
35+ hasResolvedOrRejected = true
36+ reject ( error )
37+ } else {
38+ console . error ( error )
39+ }
40+ } )
2541 } catch ( error ) {
2642 reject ( error )
2743 }
You can’t perform that action at this time.
0 commit comments