asyncMode
Learn what asyncMode does, when to use it, and how to run synchronous machine learning work in JavaScript without blocking browser or Node.js execution.
View as MarkdownHelper overview
asyncMode is a utility that wraps a synchronous function so it runs in a worker-like execution path. In the browser that means a Web Worker, and in Node.js it means a worker thread.
This helper is especially useful when:
- model training or inference is CPU-intensive
- you need to keep browser interfaces responsive during ML work
- event-loop-sensitive Node.js services should avoid blocking synchronous computation
JavaScript implementation
@kanaries/ml provides asyncMode as a JavaScript and TypeScript helper for moving heavy synchronous work off the main execution path. This is particularly useful when ML logic already lives in a JS application but should not freeze the UI, delay input handling, or block other latency-sensitive work.
If someone searches for "run machine learning in a Web Worker" or "async ML execution in JavaScript", this page should make it clear that asyncMode is the relevant integration helper.
Quick start
import { utils } from '@kanaries/ml';
const heavy = (x: number) => x * x;
const runAsync = utils.asyncMode(heavy);
const result = await runAsync(5);
console.log(result);Detailed API reference
asyncMode<P extends any[], R>(fn: (...args: P) => R): (...args: P) => Promise<R>asyncMode takes a synchronous function and returns an async wrapper that executes the work off the main thread when supported by the runtime.
Usage notes
- Wrap CPU-heavy functions rather than tiny helper functions.
- Use this helper for responsiveness, not as a substitute for model-level optimization.
- Profile long-running workloads and consider batching when jobs are still too large for smooth UX.
JavaScript deployment notes
- In browser products, this is one of the simplest ways to keep training or inference from freezing the UI.
- In Node.js services, it helps isolate expensive CPU work from the main event loop.
- Pair it with model pages in this documentation when you need a production-friendly execution path.
Statistical Utilities
Compute simple statistics with the @kanaries/ml Stat JavaScript and TypeScript utilities for browser and Node.js machine learning helpers.
Algebra Utilities
Use lightweight linear algebra helpers from the @kanaries/ml Algebra JavaScript and TypeScript implementation in browser and Node.js applications.