---
title: API de JavaScript
slug: develop/es/api-de-javascript
docTags: 
createdAt: 2025-03-11T07:07:18.733Z
---

La API de BrightSign para JavaScript le permite interactuar con el firmware del reproductor BrightSign para configurar el reproductor, recuperar datos del sistema e interactuar con dispositivos periféricos. Esta API permite operar una plataforma de señalización digital, incluida la reproducción, programación, diagnósticos y configuración de red, utilizando HTML/JavaScript, sin la necesidad de una programación extensa en BrightScript.

## Las APIs de JavaScript reemplazan los anteriores “objetos BrightScript-JavaScript”

Esta API reemplaza los [objetos BrightScript-JavaScript](docId\:KcHqxioYMZ9gBNwivrKIV). Esos objetos JavaScript más antiguos aún se ofrecen por motivos de compatibilidad retroactiva. Consulte la [Guía de migración de BrightScript-JavaScript](docId\:imtBD2LffaORoXierGC2a) para ver la asignación entre las APIs de BrightScript y JavaScript.

Los objetos JavaScript están integrados en el entorno de ejecución del navegador. Solo existen en el espacio de nombres global de JavaScript y solo pueden utilizarse con *roHtmlWidget*.

Por lo tanto, la API de JavaScript utiliza módulos de Node. Funciona perfectamente con [roHtmlWidget](docId\:g_TJkqqHLcfT4Fw5_Z6T0) y [roNodeJs](docId\:dZZlvPEuhbnof9kJBYoZe). Es un superconjunto de los objetos JavaScript heredados.

BrightSign no ha agregado nuevas funciones a los objetos heredados BrightScript-JavaScript durante varios años, y todos nuestros esfuerzos actuales de desarrollo se destinan a las APIs de JavaScript. Los objetos heredados BrightScript-Javascript existen para admitir a los clientes que los utilizan en software implementado y para mantener ese soporte durante las actualizaciones del SO.&#x20;

A diferencia de los objetos heredados BrightScript-JavaScript, no existe una relación uno a uno entre los objetos BrightScript y los objetos de la nueva API de JavaScript. Muchas funciones de BrightScript (por ejemplo, capacidades de servidor HTTP y almacenamiento de archivos) no se exponen en la nueva API porque JavaScript y Node.js® exponen equivalentes estandarizados y populares.

## Habilitación de la API de JavaScript

La API de BrightSign para JavaScript se implementa con el módulo Node.js, que se incluye con el motor Chromium en el reproductor. Para utilizar la API de BrightSign con una instancia de *roHtmlWidget* debe habilitar Node.js al crear el widget:

### Ejemplo

```javascript
r=createobject("rorectangle",0,0,1920,1080)
aa=createobject("roassociativearray")

aa.url="http://test-server/index.html"
aa.nodejs_enabled=true

bb=createobject("roassociativearray")
bb.port=3000
aa.inspector_server=bb

h=createobject("rohtmlwidget",r,aa)
h.show()
```

En el ejemplo anterior, Node.js se habilita incluyendo la entrada `nodejs_enabled:true` en el arreglo asociativo que se pasa durante la creación de la instancia de *roHtmlWidget*.

## Carga de módulos BrightSign

La API de BrightSign no existe en el espacio de nombres global (window) del entorno de ejecución de JavaScript. En su lugar, al igual que los objetos Node.js, los módulos BrightSign se cargan mediante la función `require()` (es decir, `require("@brightsign/<module_name>")`). Los módulos BrightSign en realidad forman parte del firmware, pero en términos de uso son idénticos a otros módulos Node.js.

### Ejemplo

```javascript
var NetworkConfigClass = require("@brightsign/networkconfiguration");   // Call the class constructor for the networkconfiguration object.
var wifi = new NetworkConfigClass("ethernet"); 							// Create an instance of the networkconfiguration class.
```

## Métodos síncronos y asíncronos

Los módulos BrightSign contienen métodos síncronos y asíncronos. Los métodos síncronos devuelven un objeto que puede utilizarse inmediatamente, mientras que los métodos asíncronos devuelven un objeto Promise, que a su vez devolverá los datos del objeto cuando se resuelva la operación. Los scripts deben manejar estas devoluciones retrasadas (normalmente utilizando los métodos `.then()` y `.catch()` disponibles en el objeto Promise).

### Ejemplo

```javascript
var NetworkConfigClass = require("@brightsign/networkconfiguration");
var wifi = new NetworkConfigClass("wlan0"); 
wifi.scan().then(											 // Call the Scan() method, which returns a promise.
		function(data){console.log(JSON.stringify(data));}) // The resolve/success case, which prints the scan results 
	.catch(
		function(data){console.log(JSON.stringify(data));}) // The reject/failure case, which prints the failure reason
```

