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

305
Vistas
Emitir un evento en Node.js C++ Addon (N-API)

Tengo un complemento de C++ que usa un SDK de escáner. Cuando se escanea un código de barras, quiero pasar esos datos a mi aplicación Node.js. Todo funciona (incluido el evento 'conectar') hasta que el código C++ intenta emitir el evento 'barcodeScanned'.

El error que recibo es:

 # # Fatal error in v8::HandleScope::CreateHandle() # Cannot create a handle without a HandleScope #

Código relevante:

 void NodeZebraAddon::SetEmitFunction(const Napi::CallbackInfo &info) { Napi::Env env = info.Env(); Napi::Function func = info[0].As<Napi::Function>(); EventEmitter = Napi::Persistent(info[0].As<Napi::Function>()); EventEmitter.Call({Napi::String::New(EventEmitter.Env(), "connect")}); } void NodeZebraAddon::OnBarcodeEvent(short int eventType, std::string &pscanData) { Napi::HandleScope scope(EventEmitter.Env()); cout << "Barcode Detected" << endl; cout << "Out XML" << endl; cout << pscanData << endl; EventEmitter.Call({Napi::String::New(EventEmitter.Env(), "barcodeEvent"), Napi::String::New(EventEmitter.Env(), pscanData)}); }

prueba.js

 const emitter = new EventEmitter() const instance = new NodeZebraAddon(); emitter.on('connect', () => { console.log('onConnect'); }) emitter.on('barcodeEvent', (evt) => { console.log(evt); }) instance.setEmitFunction(emitter.emit.bind(emitter));
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