Globales
El tiempo de ejecución de la escena garantiza la existencia de ciertos objetos y funciones dentro del entorno sandboxed de JavaScript, además de las utilidades estándar como Promise, Date o Math.
Globals
El runtime inyecta 6 definiciones en el ámbito global de la escena:
console: una versión simplificada del típicoconsole.objeto: un objeto donde la escena puede añadir sus interfaz pública.module: un contenedor para elobjeto.La función global require: una función para cargar módulos proporcionados por el runtime por nombre.fetch: una implementación restringida delfetchfunction.WebSocket: una implementación restringida delWebSocketclass.
Todos estos están definidos como propiedades de solo lectura, por lo que no pueden reasignarse. Algunos lanzarán excepciones cuando se usen a menos que se otorguen ciertos permissions se concedan a la escena.
Console
Las escenas tienen acceso a un console objeto, muy parecido al que proporciona un navegador o un entorno Node, aunque limitado a solo algunos de los métodos que normalmente encontrarías.
type Console = {
log(...args: any): void
info(...args: any): void
debug(...args: any): void
warning(...args: any): void
error(...args: any): void
}Al igual que sus contrapartes estándar, cada método acepta argumentos variables de cualquier tipo y los representa como mensajes legibles por humanos. Por ejemplo, esto es válido:
El comportamiento preciso de estos métodos depende del proveedor, pero los mensajes deben ser accesibles para los desarrolladores de escenas que depuran su código.
Imports and Exports
Las escenas pueden importar y exportar objetos usando la tradicional CommonJS module interface.
El La función global require function permite a las escenas acceder a módulos proporcionados por el runtime (como EngineApi o RestrictedActions), y nada más (no no accede a paquetes NPM o módulos por ruta).
Las propiedades añadidas al objeto objeto son la interfaz pública de la escena y se expondrán al runtime. De hecho, las escenas deben exponer al menos un método para ejecutarse correctamente (ver ejecución).
HTTP and WebSockets
El fetch y WebSocket globals funcionan exactamente como sus contrapartes bien conocidas (ver fetch y WebSocket en MDN), pero con algunas restricciones impuestas por el runtime.
Al llamar a la fetch function:
Se lanza un error si la URL no comienza con
https://.Se lanza un error si la escena no tiene el
USE_FETCHpermission.Un timeout definido por la implementación puede abortar la solicitud.
Al usar la WebSocket class:
Se lanza un error si la URL no comienza con
wss:Se lanza un error si la escena no tiene el
USE_WEBSOCKETpermission.
Aparte de estas diferencias, ambos casos siguen el comportamiento estándar.
Última actualización