Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
why is Bluetooth.then not a function?

I am writing a Javascript program to print out device information.

I have two services: 'battery_service' and 'device_information', and the characteristic under 'battery_service' is 'battery_information'.

I want to implement some code in separate functions to make it neater, but when I want to do so, I get the following error:

deviceInfo3.js:11 Uncaught TypeError: bluetoothDevice is not a function

from calling the function below: My getBatteryFunction:

 function getBatteryPercent()
  {
    bluetoothDevice
    .then(
      value => {
        console.console.log("Battery = "+value.getUint8(0))
        document.getElementById("battery").value=value.getUint8(0);
      }
    )
  }

and this is my main driver function when the button is clicked:

var bluetoothDevice;

function onScanButtonClick() {
  let options = {filters: []};

  
    options.filters.push({services: ['battery_service', 'device_information' ]});

  console.log('Requesting Bluetooth Device...');
  navigator.bluetooth.requestDevice(options)
  .then(device => {
    bluetoothDevice = device;
    bluetoothDevice.addEventListener('gattserverdisconnected', onDisconnected);
    return device.gatt.connect();
  })
  .then((server) => {
    // Set the isConnected variable to true
    bluetoothDevice.isConnected = true;
    console.log('Getting Accelerometer service (UUID: ' + 'battery_service' + ')... ');
    // Get the accelerometer service (if it's not enabled, the error will be caught below)
    return server.getPrimaryServices();
  })
  .then(services => {
    console.log("Getting characteristics...");
    let queue=Promise.resolve();
    services.forEach(service => {
      console.log(service.uuid);
      switch(service.uuid) {
        
        case ('0000180f-0000-1000-8000-00805f9b34fb'): {
          getBatteryPercent();
        }
      }
      
    })
  })
}

How can I achieve this?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda