@@ -544,6 +544,16 @@ module.exports = {
544544
545545 // Send the command to the server and race the Promise against a delay..
546546 return this . _sendCommand ( this . _getPromiseDelay ( ) , "#tmijs" , `/w ${ username } ${ message } ` , ( resolve , reject ) => {
547+ this . once ( "_promiseWhisper" , ( err ) => {
548+ if ( err ) { reject ( err ) ; }
549+ } ) ;
550+ } ) . catch ( ( error ) => {
551+ // Either an "actual" error occured or the timeout triggered
552+ // the latter means no errors have occured and we can resolve
553+ // else just elevate the error
554+ if ( error !== "No response from Twitch." ) {
555+ throw error ;
556+ }
547557 var from = _ . channel ( username ) ,
548558 userstate = _ . merge ( {
549559 "message-type" : "whisper" ,
@@ -557,10 +567,7 @@ module.exports = {
557567 [ from , userstate , message , true ] ,
558568 [ from , userstate , message , true ]
559569 ] ) ;
560-
561- // At this time, there is no possible way to detect if a message has been sent has been eaten
562- // by the server, so we can only resolve the Promise.
563- resolve ( [ username , message ] ) ;
570+ return [ username , message ] ;
564571 } ) ;
565572 }
566573}
0 commit comments