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.
42
stars
11
forks
source link
Please provide a working example for flutter web.. #22
Closed
zhushuihua closed 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