Skip to content

Instantly share code, notes, and snippets.

@rodydavis
Created January 21, 2025 07:42
Show Gist options
  • Save rodydavis/95867dc6eaa68876b97e9ecb0b869972 to your computer and use it in GitHub Desktop.
Save rodydavis/95867dc6eaa68876b97e9ecb0b869972 to your computer and use it in GitHub Desktop.
import 'dart:js_interop';
import 'package:web/web.dart';
void onMessage(Event event) {
if (event is MessageEvent) {
print('Worker received message: ${event.data}');
}
}
void postMessage(
WorkerGlobalScope self,
JSAny? message, {
JSObject? optionsOrTransfer,
}) {
if (self is DedicatedWorkerGlobalScope) {
if (optionsOrTransfer == null) {
self.postMessage(message);
} else {
self.postMessage(message, optionsOrTransfer);
}
}
print('Worker sent message: ${message}');
}
void main() {
var self = globalContext as WorkerGlobalScope;
// globalScope.importScripts("https://my/url.js");
self.addEventListener('message', onMessage.toJS);
print('Worker started');
postMessage(self, 'Hello from worker'.toJS);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment