I have to read a value from a BLE devive and then write to it another value so this is my function to do it:
   getBit = (device) => {
        try {
            device.readCharacteristicForService(this.state.sUuid, this.state.cUuid2)
            .then((read) => {
                switch (this.toHexByte(read.value)) {
                    case 'ee':
                        this.setState({ countC0: 0 });
                        break;
                    case 'c0':
                        this.setState({ countC0: this.state.countC0 + 1 });
                        break;
                    default: // the bit I want to stock
                        this.setState({
                            resId: [...this.state.resId, this.toHexByte(read.value)],
                            countC0: 0
                        });
                        break;
                }
                device.writeCharacteristicWithoutResponseForService(this.state.sUuid, this.state.cUuid2, this.state.respBit)
            })
            return
        }
        catch (err) {
            console.log("find catch error:", err);
        }
    }
but I have to call this function until I get the same bit ('c0') 3 time so I loop for it like that:
   while (countC0 < 15) {
     this.getBit(device);
     countC0++;
   }
The problem is that I receive Please report: Excessive number of pending callbacks: 501 error because I'm calling an async function in a while loop.
 
    