Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

If an roMessagePort is attached to an roNodeJs, it will receive roNodeJsEvent objects when something happens to the parent roNodeJs instance.

ifUserData

SetUserData(user_data As Object)
Sets the user data that will be returned when events are raised.

GetUserData() As Object
Returns the user data that has previously been set via SetUserData(). It will return Invalid if no data has been set.

ifNodeJsEvent

GetData() As roAssociativeArray
Returns the event data as an associative array with the following key/value pairs:

  • [string]

 reason
  •  reason: The cause of the event, which can be one of the following:

    • process_exit: The nodeJs instance has exited.

    • message: The nodeJs instance has sent a message.

  • [number]

 exit
  •  exit_code:

  This
  •   This field is only present if the value of the reason field value is process_exit. It will return

the exit
  • the exit code from the Node.js® process, as described

at   The
  •  The exit_code field is only defined from OS 8.2 onwards.

 Note
  •  Note that the Node.js script could also use these codes for its own purposes. 

  • [string]

 message
  •  message: If the reason field value is message, this field returns the contents of the message.

Example

The following event loop waits for a nodeJs event and reports the events:

Code Block
languagebash
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
Panel
borderColor#3D3D3D
bgColor#F4F4F4
titleColor#3D3D3D
borderWidth0
titleBGColor#3D3D3D
borderStylesolid

ON THIS PAGE

Table of Contents
indent20px