@@ -150,8 +150,7 @@ class USBWorkflow extends Workflow {
150150
151151 btnRequestSerialDevice . disabled = true ;
152152 btnSelectHostFolder . disabled = true ;
153-
154- btnRequestSerialDevice . addEventListener ( 'click' , async ( event ) => {
153+ let serialConnect = async ( event ) => {
155154 try {
156155 await this . connectToSerial ( ) ;
157156 } catch ( e ) {
@@ -160,15 +159,15 @@ class USBWorkflow extends Workflow {
160159 //alert("Unable to connect to device. Make sure it is not already in use.");
161160 // TODO: I think this also occurs if the user cancels the requestPort dialog
162161 }
163- } , { once : true } ) ;
162+ } ;
163+ btnRequestSerialDevice . removeEventListener ( 'click' , serialConnect ) ;
164+ btnRequestSerialDevice . addEventListener ( 'click' , serialConnect ) ;
164165
165- btnSelectHostFolder . addEventListener ( 'click' , async ( event ) => {
166- await this . _selectHostFolder ( ) ;
167- } , { once : true } ) ;
166+ btnSelectHostFolder . removeEventListener ( 'click' , this . _selectHostFolder ) ;
167+ btnSelectHostFolder . addEventListener ( 'click' , this . _selectHostFolder ) ;
168168
169- btnUseHostFolder . addEventListener ( 'click' , async ( event ) => {
170- await this . _useHostFolder ( ) ;
171- } , { once : true } ) ;
169+ btnUseHostFolder . removeEventListener ( 'click' , this . _useHostFolder ) ;
170+ btnUseHostFolder . addEventListener ( 'click' , this . _useHostFolder ) ;
172171
173172 // Check if WebSerial is available
174173 if ( ! ( await this . available ( ) instanceof Error ) ) {
@@ -236,10 +235,14 @@ class USBWorkflow extends Workflow {
236235
237236 // Workflow specific Functions
238237 async _switchToDevice ( device ) {
239- device . addEventListener ( "message" , this . onSerialReceive . bind ( this ) , { once : true } ) ;
240- device . addEventListener ( "disconnect" , async ( e ) => {
238+ device . removeEventListener ( "message" , this . onSerialReceive . bind ( this ) ) ;
239+ device . addEventListener ( "message" , this . onSerialReceive . bind ( this ) ) ;
240+
241+ let onDisconnect = async ( e ) => {
241242 await this . onDisconnected ( e , false ) ;
242- } , { once : true } ) ;
243+ } ;
244+ device . removeEventListener ( "disconnect" , onDisconnect ) ;
245+ device . addEventListener ( "disconnect" , onDisconnect ) ;
243246
244247 this . _serialDevice = device ;
245248 console . log ( "switch to" , this . _serialDevice ) ;
0 commit comments