蓝牙断开连接变成异步操作

This commit is contained in:
liub
2025-10-27 11:51:38 +08:00
parent 61ed91695f
commit cf60414d76
2 changed files with 27 additions and 33 deletions

View File

@ -398,11 +398,11 @@
ble = BleTool.getBleTool();
ble.addReceiveCallback(these.bleValueNotify, pagePath);
ble.addStateBreakCallback(these.bleStateBreak, pagePath);
ble.addStateRecoveryCallback(these.bleStateRecovry, pagePath);
ble.addDisposeCallback(these.deviceDispose, pagePath);
ble.addRecoveryCallback(these.deviceRecovry, pagePath);
ble.addReceiveCallback(this.bleValueNotify, pagePath);
ble.addStateBreakCallback(this.bleStateBreak, pagePath);
ble.addStateRecoveryCallback(this.bleStateRecovry, pagePath);
ble.addDisposeCallback(this.deviceDispose, pagePath);
ble.addRecoveryCallback(this.deviceRecovry, pagePath);
let eventChannel = this.getOpenerEventChannel();

View File

@ -172,7 +172,7 @@ class BleHelper {
//连接所有已连接过的设备
linkAllDevices() {
// console.log("模块启动时,自动连接已连接过的设备", this.data.LinkedList);
if(this.data.platform=='web'){
if (this.data.platform == 'web') {
return;
}
if (this.data.LinkedList && this.data.LinkedList.length > 0) {
@ -1405,7 +1405,7 @@ class BleHelper {
//连接某个设备
LinkBlue(deviceId, targetServiceId, writeCharId, notifyCharId, maxRetries) {
if(this.data.platform=='web'){
if (this.data.platform == 'web') {
return Promise.resolve(true);
}
if (maxRetries === undefined) {
@ -1595,7 +1595,7 @@ class BleHelper {
}
//断开连接
disconnectDevice(deviceId) {
if(this.data.platform=='web'){
if (this.data.platform == 'web') {
return Promise.resolve();
}
var disconnect = (id) => {
@ -1616,16 +1616,7 @@ class BleHelper {
}
if (deviceId) {
disconnect(deviceId);
this.data.LinkedList.find(v => {
if (v.deviceId === deviceId) {
return true;
}
return false;
});
return;
return disconnect(deviceId);
}
if (this.data.LinkedList.length > 0) {
@ -1637,23 +1628,26 @@ class BleHelper {
}
}
if (arr.length == 0) {
return;
}
Promise.allSettled(arr).then((results) => {
results.forEach((result, index) => {
if (result.status === 'fulfilled') {
////console.log(`第${index + 1}个Promise成功:`, result.value);
} else {
////console.log(`第${index + 1}个Promise失败:`, result.reason.message);
}
if (arr.length) {
return new Promise((_succ, _err) => {
Promise.allSettled(arr).then((results) => {
results.forEach((result, index) => {
if (result.status === 'fulfilled') {
////console.log(`第${index + 1}个Promise成功:`, result.value);
} else {
////console.log(`第${index + 1}个Promise失败:`, result.reason.message);
}
});
_succ()
}).catch((ex) => {
_err();
});
});
});
} else {
////console.log("无已连接设备");
}
}
return Promise.resolve();
}
//向蓝牙设备发送一个字符串的ASCII码
sendString(deviceid, str, writeServiceId, wirteCharactId, ms) {