Не может spawnUri() из приложения dart:io в приложение dart:html?

Это возможно? То есть я попробовал это, и это не сработало. Но в теории это должно быть возможно, не так ли? Я только передаю сообщения туда и обратно, изолированное пространство памяти и т. Д.

import 'dart:io';
import 'dart:isolate';

main(){
  final sp = spawnUri('path/to/dart_html_app.dart');
}

броски:

IsolateSpawnException: 'Do not know how to load 'dart:html'

1 ответ

Как кто-то уже сказал, вы не можете импортировать dart:html в ВМ (по крайней мере, на данный момент). Ваше решение состояло бы в том, чтобы разделить приложение на две библиотеки, где та, которую вы хотите создать, не использует dart:html,

Что ты на самом деле пытаешься сделать? Если вы думаете, что браузер и виртуальная машина могут общаться через изоляторы, это не сработает. Изоляторы используют пул потоков в виртуальной машине и веб-рабочие в браузере, если они доступны.

Если вы просто хотите "загрузить код из этого URI и выполнить его так же, как любой код в новом изоляте", то это, безусловно, возможно - почему бы и нет? Вам просто нужно провести рефакторинг вашей базы кода, чтобы вы не импортировали dart:html кроме тех случаев, когда это действительно нужно.

Другие вопросы по тегам