'When should we use runOnUI and runOnJS?

If I understand correctly the purpose of 'worklets' it to run the code on UI thread:

Blockquote With Reanimated 2 we spawn a secondary JS context on the UI thread that then is able to run JavaScript functions.

Then why do we need runOnUI and when should we use it, if it is doing the same thing:

Blockquote Enables executing worklet function on the UI thread. Note that UI execution is asynchronous from the caller’s perspective. When you pass arguments, they will be copied to the UI JS context.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source