- From: Tequin Dragon via GitHub <sysbot+gh@w3.org>
- Date: Mon, 10 Feb 2025 21:37:02 +0000
- To: public-web-bluetooth-log@w3.org
> Hello, I am facing the same problem, any news ?
I've had to deal with this and i've found it's easiest to wrap the `startNotifications` call with a promise and setTimeout to try again if it fails:
```ts
/** Wrapper around {@link BluetoothRemoteGATTCharacteristic.startNotifications} to try again if the device is busy */
private async _startNotifications(characteristic: BluetoothRemoteGATTCharacteristic): Promise<void> {
return new Promise(async (resolve) => {
let startNotifications = async () => {
try {
await characteristic.startNotifications();
resolve();
} catch (error) {
if (!(error instanceof Error) || error.name != 'NotSupportedError')
throw error;
console.debug(`Device busy, could not subscribe to characteristic ${characteristic.uuid}. Retrying...`);
setTimeout(startNotifications, 100);
}
};
await startNotifications();
});
}
```
--
GitHub Notification of comment by TequinDragon
Please view or discuss this issue at https://github.com/WebBluetoothCG/web-bluetooth/issues/466#issuecomment-2649296499 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Monday, 10 February 2025 21:37:03 UTC