runOnRuntime
runOnRuntime
lets you asynchronously run workletized functions on a separate worklet runtime on a separate thread.
Reference
import { createWorkletRuntime, runOnRuntime } from 'react-native-reanimated';
const workletRuntime = createWorkletRuntime('background');
function App() {
// E.g. in event handler or in an effect
runOnRuntime(workletRuntime, (greeting) => {
console.log(`${greeting} from a separate thread`);
})('Howdy');
// ...
}


Type definitions
function runOnRuntime<A extends any[], R>(
workletRuntime: WorkletRuntime,
fn: (...args: A) => R
): (...args: Parameters<typeof fn>) => void;
Arguments
workletRuntime
A reference to worklet runtime created with createWorkletRuntime
.
fn
A reference to a function you want to execute on the UI thread from the JavaScript thread. Arguments to your function have to be passed to the function returned from runOnUI
i.e. runOnUI(myWorklet)(10);
.
Returns
runOnRuntime
returns a function that accepts arguments for the function passed as the first argument.
Don't forget to call the function returned from runOnRuntime
.
Remarks
-
It's a common mistake to execute function inside of
runOnRuntime
like this:. Here, the correct usage would berunOnRuntime(myWorklet(10))()
runOnRuntime(myWorklet)(10)
. -
The callback passed as the argument will not be workletized automatically. You need to add
'worklet';
directive manually to allow the function to be run on the UI thread. -
You may call
runOnRuntime
on any runtime, including the RN runtime, UI runtime and other worklet runtimes. -
The function passed to
runOnRuntime
will be added to an execution queue on a separate thread and executed asynchronously on the specified worklet runtime. The functions will be executed in the order they were added to the queue.
Platform compatibility
Android | iOS | Web |
---|---|---|
✅ | ✅ | ❌ |