init method
Initializes the thread.
This method should be implemented by subclasses to perform any setup necessary for the thread.
Implementation
@override
void init() {
try {
if (html.Worker.supported) {
worker = html.Worker(_workerUrl);
worker.onMessage.listen((event) {
var data = event.data;
if (data?['id'] != null) {
activeTasks--;
onMessage(ThreadResponse(
bytes: data['bytes'],
id: data['id'],
));
}
});
readyState.complete(true);
isReady = true;
} else {
debugPrint('Your browser doesn\'t support web workers.');
readyState.complete(false);
}
} catch (e) {
if (readyState.isCompleted) readyState = Completer();
readyState.complete(false);
}
}