Fix webconfig race condition

This commit is contained in:
William Toohey
2017-10-06 15:45:25 +10:00
parent 0e5c25b4ac
commit e4386bdd4e
2 changed files with 29 additions and 23 deletions
+1 -2
View File
@@ -4,7 +4,6 @@
// could be monim, could be pretending
var vids = [0x16D0, 0x1CCF];
var pids = [0x0A6D, 0x1014];
var UsbWrapper = window.UsbWrapper;
var device;
@@ -197,7 +196,7 @@ class Config {
}
connectNew() {
return UsbWrapper.connect(vids, pids)
return window.UsbWrapper.connect(vids, pids)
.then(selectedDevice => {
if(!selectedDevice) {
return Promise.reject('No device selected');
+28 -21
View File
@@ -4,27 +4,34 @@
(function(window, document, navigator) {
"use strict";
var UsbWrapper = new function() {
this.hasUSB = navigator && navigator.usb;
if(!this.hasUSB)
return;
// returns a promise
this.connect = (vids, pids) => {
var filters = [];
for(let i = 0; i < vids.length; i++) {
filters.push({ vendorId: vids[i], productId: pids[i] });
}
return navigator.usb.requestDevice({filters: filters})
.catch(error => {
console.log(error);
return null;
});
// otherwise race condition
var UsbWrapper_init = function() {
var UsbWrapper = new function() {
this.hasUSB = navigator && navigator.usb;
if(!this.hasUSB)
return;
// returns a promise
this.connect = (vids, pids) => {
var filters = [];
for(let i = 0; i < vids.length; i++) {
filters.push({ vendorId: vids[i], productId: pids[i] });
}
return navigator.usb.requestDevice({filters: filters})
.catch(error => {
console.log(error);
return null;
});
};
this.usb = navigator.usb;
};
this.usb = navigator.usb;
};
window.UsbWrapper = UsbWrapper;
}
window.UsbWrapper_init = UsbWrapper_init;
window.UsbWrapper = UsbWrapper;
})(window, document, navigator);