Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

97
Visualizações
Obtenga la resolución de Promise desde una devolución de llamada separada

Estoy enviando datos a un dispositivo Bluetooth y las respuestas son manejadas por un oyente que se configura durante el proceso de conexión:

 device.connect().then(device => { device.registerResponseListener((data) => { // handle response } }

Tengo una función separada que envía datos al dispositivo:

 const sendData = (device, data) => { device.write(data); }

Mi pregunta es, ¿cómo puedo prometer este código? me gustaria poder hacer

 const sendData = (device, data) => { return new Promise((resolve, reject) => { device.write(data); // resolve...? }); }

Pero, ¿cómo obtengo la resolve en el oyente de respuesta de Bluetooth?

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

No sé qué API está utilizando, pero puede probar la API BluetoothRemoteGATTCharacteristic. Tiene el método writeValueWithResponse que devuelve Promise.

https://developer.mozilla.org/en-US/docs/Web/API/BluetoothRemoteGATTCaracterística

about 4 years ago · Juan Pablo Isaza Relatório

0

La mejor solución posible en este caso, aunque aún no es la ideal, fue almacenar la función de resolve en una variable de mayor alcance:

 var sendDataResolve; device.connect().then(device => { device.registerResponseListener((data) => { sendDataResolve(data); } } const sendData = (device, data) => { return new Promise((resolve, reject) => { sendDataResolve = resolve; device.write(data); }); } ... sendData(device, "data") .then(result => { console.log("Got result",result); });

La advertencia es que NO se garantiza que las resoluciones de Promise se vinculen correctamente a la solicitud original. Esto SÓLO funciona con una solicitud a la vez.

about 4 years ago · Juan Pablo Isaza Relatório

0

Si te entendí bien entonces puedes hacerlo así

 const sendData = async (device, data) => { const response = await device.write(data); await Promise.all(device.responseListeners.map(listener => listener(response))) }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda