init method

  1. @override
void init()
override

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);
  }
}