@@ -150,8 +150,7 @@ class USBWorkflow extends Workflow {
150
150
151
151
btnRequestSerialDevice . disabled = true ;
152
152
btnSelectHostFolder . disabled = true ;
153
-
154
- btnRequestSerialDevice . addEventListener ( 'click' , async ( event ) => {
153
+ let serialConnect = async ( event ) => {
155
154
try {
156
155
await this . connectToSerial ( ) ;
157
156
} catch ( e ) {
@@ -160,15 +159,15 @@ class USBWorkflow extends Workflow {
160
159
//alert("Unable to connect to device. Make sure it is not already in use.");
161
160
// TODO: I think this also occurs if the user cancels the requestPort dialog
162
161
}
163
- } , { once : true } ) ;
162
+ } ;
163
+ btnRequestSerialDevice . removeEventListener ( 'click' , serialConnect ) ;
164
+ btnRequestSerialDevice . addEventListener ( 'click' , serialConnect ) ;
164
165
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 ) ;
168
168
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 ) ;
172
171
173
172
// Check if WebSerial is available
174
173
if ( ! ( await this . available ( ) instanceof Error ) ) {
@@ -236,10 +235,14 @@ class USBWorkflow extends Workflow {
236
235
237
236
// Workflow specific Functions
238
237
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 ) => {
241
242
await this . onDisconnected ( e , false ) ;
242
- } , { once : true } ) ;
243
+ } ;
244
+ device . removeEventListener ( "disconnect" , onDisconnect ) ;
245
+ device . addEventListener ( "disconnect" , onDisconnect ) ;
243
246
244
247
this . _serialDevice = device ;
245
248
console . log ( "switch to" , this . _serialDevice ) ;
0 commit comments