iandis / isolated_worker

An isolated worker for Flutter (Isolate) and Web (Web Worker). Behaves almost the same as the compute function, except it is not a one-off worker.
MIT License
42 stars 11 forks source link

Please provide a working example for flutter web.. #22

Closed zhushuihua closed 10 months ago

zhushuihua commented 10 months ago

Thanks for the brilliant package.

I failed to make it work in flutter web with JSIsolatedWeb with the following example.

`import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:isolated_worker/js_isolated_worker.dart';

void main() { runApp(const MyApp()); }

class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), useMaterial3: true, ), home: const MyHomePage(), ); } }

class MyHomePage extends StatefulWidget { const MyHomePage({super.key});

@override State createState() => _MyHomePageState(); }

class _MyHomePageState extends State { @override Widget build(BuildContext context) { return Scaffold( body: Center( child: ElevatedButton( onPressed: () async { if (kIsWeb) { JsIsolatedWorker().run(functionName: tryPrint, arguments: null); } }, child: const Text('Start')), ), ); } }

void tryPrint(void _) { print('Hello from IsolatedWorker'); }`

The error is as following

Error: UnimplementedError: structured clone of other type dart-sdk/lib/_internal/js_dev_runtime/private/ddcruntime/errors.dart 294:49 throw dart-sdk/lib/html/html_common/conversions.dart 153:5 walk dart-sdk/lib/html/html_common/conversions.dart 162:17 copyList dart-sdk/lib/html/html_common/conversions.dart 136:14 walk dart-sdk/lib/html/html_common/conversions.dart 168:16 convertDartToNative_PrepareForStructuredClone dart-sdk/lib/html/html_common/conversions_dart2js.dart 94:10 convertDartToNative_PrepareForStructuredClone dart-sdk/lib/html/html_common/conversions.dart 32:10 convertDartToNative_SerializedScriptValue dart-sdk/lib/html/dart2js/html_dart2js.dart 33909:21 postMessage] packages/isolated_worker/src/isolated_worker_web_impl.dart 116:11 run dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 45:50 dart-sdk/lib/async/zone.dart 1661:54 runUnary dart-sdk/lib/async/future_impl.dart 156:18 handleValue dart-sdk/lib/async/future_impl.dart 840:44 handleValueCallback dart-sdk/lib/async/future_impl.dart 869:13 _propagateToListeners