roNodeJsEvent
3 min
Si se adjunta un roMessagePort a un roNodeJs, recibirá objetos roNodeJsEvent cuando ocurra algo en la instancia principal de roNodeJs.
ifUserData
SetUserData(user_data As Object) Establece los datos de usuario que se devolverán cuando se generen eventos.
GetUserData() As Object Devuelve los datos de usuario que se configuraron previamente mediante SetUserData(). Devolverá Inválido si no se ha establecido ningún dato.
ifNodeJsEvent
GetData() As roAssociativeArray Devuelve los datos del evento como un arreglo asociativo con los siguientes pares clave/valor:
- razón string: La causa del evento, que puede ser una de las siguientes:
- salida_del_proceso: La instancia de nodeJs se ha cerrado.
- mensaje: La instancia de nodeJs ha enviado un mensaje*.*
- exit_code number: Este campo solo está presente si el valor del campo razón es salida_del_proceso. Devolverá el código de salida del proceso Node.js®, como se describe en https://nodejs.org/api/process.html#process_exit_codes. El campo exit_code solo está definido a partir de OS 8.2. Tenga en cuenta que el script de Node.js también podría utilizar estos códigos para sus propios fines.
- mensaje string: Si el valor del campo razón es mensaje, este campo devuelve el contenido del mensaje.
Ejemplo
El siguiente bucle de eventos espera un evento de nodeJs e informa los eventos:
while true
ev = wait(0, gaa.mp)
print "=== BS: Received event ";type(ev)
if type(ev) = "roNodeJsEvent" then
eventData = ev.GetData()
if type(eventData) = "roAssociativeArray" and type(eventData.reason) = "roString" then
if eventData.reason = "process_exit" then
print "=== BS: Node.js instance exited with code " ; eventData.exit_code
else if eventData.reason = "message" then
print "=== BS: Received message "; eventData.message
' To use this: msgPort.PostBSMessage({text: "my message"});
else
print "======= UNHANDLED NODEJS EVENT ========="
print eventData.reason
endif
else
print "=== BS: Unknown eventData: "; type(eventData)
endif
endif
endwhile