Mashup Builder > Funciones > Prácticas recomendadas para crear expresiones de función
Prácticas recomendadas para crear expresiones de función
Las siguientes funciones y widgets soportan la escritura de expresiones de JavaScript personalizadas en un mashup:
Función de expresión: se evalúa en un valor.
Función de validación: se evalúa en un valor booleano.
Widgets de rejilla: se evalúa la entrada del usuario al editar celdas de la rejilla.
Uso de la función TW.log solo para fines de desarrollo
La función TW.log() se puede utilizar para registrar mensajes de depuración, error, aviso e información relacionados con la expresión en un mashup. Los mensajes de registro se muestran en el cuadro de diálogo del registro del mashup en tiempo de ejecución. Por ejemplo:
TW.log.debug('debug')
TW.log.error('error')
TW.log.warn('warn')
TW.log.info('info')
La apertura de mashups que contienen un gran número de sentencias de registro de expresiones afecta significativamente al rendimiento del mashup. Si se utiliza un gran número de sentencias de registro en los mashups, se recomienda evitar hacerlo en un entorno de producción activo. Las sentencias de registro se pueden utilizar al desarrollar y probar un mashup, pero se deben convertir en un comentario o quitarse del código antes de implementar el mashup en un entorno de producción.
Verificación de la consola de depuración en tiempo de ejecución
Después de diseñar un mashup que contenga expresiones, verifique el cuadro de diálogo de información de depuración en tiempo de ejecución. Esta función se puede utilizar para realizar el seguimiento de la ejecución del mashup, que ayuda a identificar problemas de lógica, tales como enlaces circulares y bucles infinitos en el diseño o la implementación. Para ver la información de depuración de un mashup, pulse en Mostrar/Ocultar información de depuración de la barra de herramientas de tiempo de ejecución.
Análisis de la entrada JSON
Al trabajar con datos JSON en una expresión, se debe evitar el uso del método JSON.parse() para analizar y convertir JSON a partir de una cadena. Se puede acceder a los objetos JSON dentro de los parámetros que se definen en un tipo base JSON directamente.
Uso de la función TW.setTimout
En versiones anteriores de ThingWorx, setTimeout no se soporta en expresiones de función. En ThingWorx 9.6 o versiones posteriores, se pueden ejecutar hasta 10 expresiones que contengan una función TW.setTimeout a la vez. Se puede definir una única función setTimeout en cada función de expresión. Los códigos añadidos antes o después de la función setTimeout en la expresión no se ejecutan. El valor máximo de tiempo de espera que se puede definir para una función se limita a 10 segundos. Cuando el valor definido supera este límite, el valor de la función se define automáticamente en 10 segundos y se muestra un mensaje TW.log.warn en los registros de mashup en tiempo de ejecución.
TW.setTimeout(() => {
TW.log.info("Delayed for 1 second.")
}, "1000");
* 
Hasta diez convertidores web están disponibles para ejecutar expresiones con una función setTimeout en tiempo de ejecución. Las adicionales se ponen en cola hasta que un convertidor esté disponible.
Uso de las funciones TW.sessionStorage
Los pares de nombre y valor almacenados en el objeto window.sessionStorage solo estarán disponibles mientras dure la sesión del explorador. Es posible que se produzcan condiciones de carrera porque las expresiones seguras se ejecutan de forma asíncrona. Por ejemplo, una expresión puede actualizar las propiedades de almacenamiento de sesión y otra puede ejecutarse antes de obtener los valores actualizados. Para reducir las condiciones de carrera y garantizar que las actualizaciones de almacenamiento de la sesión estén disponibles cuando otra expresión comience a ejecutarse, se deberían encadenar las expresiones mediante un evento Changed.
* 
Las variables window.sessionStorage no están relacionadas con Thingworx GlobalSessionVariables.
¿Fue esto útil?