Uploaded January 2026 | Updated September 2026, 5 hours ago
Threading mistakes are one of the fastest ways to break performance in a React Native app. In this episode of *Mastering React Native TurboModules*, Oskar Kwaśniewski explains how threading works on iOS and how TurboModules interact with the JavaScript thread, native module queues, and the main UI thread.
Using a Swift Local Storage TurboModule, Oskar shows how to inspect which thread your code runs on, why synchronous methods can block JavaScript, and how to use Grand Central Dispatch to move heavy work onto background or custom queues. The episode wraps up with a practical async TurboModule implementation using promises, ensuring long‑running work never freezes your app.
What you’ll learn:
🟣 The main, JavaScript, and native module threads in React Native
🟣 How to detect which thread your TurboModule method runs on
🟣 Why blocking the JS thread causes UI freezes
🟣 Using GCD global and custom dispatch queues in Swift
🟣 Serial vs concurrent queues and when to use them
🟣 Implementing async TurboModule methods with promises
Follow Callstack on X 🐦 https://x.com/callstackio
Threading mistakes are one of the fastest ways to break performance in a React Native app. In this episode of *Mastering React Native TurboModules*, Oskar Kwaśniewski explains how threading works on iOS and how TurboModules interact with the JavaScript thread, native module queues, and the main UI thread.
Using a Swift Local Storage TurboModule, Oskar shows how to inspect which thread your code runs on, why synchronous methods can block JavaScript, and how to use Grand Central Dispatch to move heavy work onto background or custom queues. The episode wraps up with a practical async TurboModule implementation using promises, ensuring long‑running work never freezes your app.
What you’ll learn:
🟣 The main, JavaScript, and native module threads in React Native
🟣 How to detect which thread your TurboModule method runs on
🟣 Why blocking the JS thread causes UI freezes
🟣 Using GCD global and custom dispatch queues in Swift
🟣 Serial vs concurrent queues and when to use them
🟣 Implementing async TurboModule methods with promises
Follow Callstack on X 🐦 https://x.com/callstackio










