Running worklet functions on the UI runtime
The Worklets library provides three functions for running a worklet function on the UI Runtime from the RN Runtime: scheduleOnUI, runOnUIAsync and runOnUISync.
They differ in whether the worklet function runs asynchronously or synchronously, and in what they return to the caller.
Use the table below to pick the one that fits your case.
Comparison
scheduleOnUI | runOnUIAsync | runOnUISync | |
|---|---|---|---|
| Execution | Asynchronous | Asynchronous | Synchronous, blocks the caller until the worklet function returns |
| Returns | Nothing | A Promise that resolves with the worklet function's return value | The worklet function's return value directly |
| Web support | ✅ | ✅ | ❌ |
| Use when | You want to run a worklet function on the UI Runtime and don't need its result back | You need the worklet function's result back, but don't want to block the calling thread | You need the worklet function's result immediately, within the same synchronous flow |
The values returned by runOnUIAsync and runOnUISync have to be serializable.
All three functions can be called from the RN Runtime, and additionally from the UI and Worker Runtimes when Bundle Mode is enabled. See Call tables for the full matrix.