If I understand correctly the purpose of 'worklets' it to run the code on UI thread:
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:
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.