Как получить доступ к методам и свойствам в классе java-script из DART

Не уверен, что это ограничение компилятора или что-то, чего я не понимаю (скорее всего, последнее:-))

Я пытаюсь получить доступ к структуре "DataView", похороненной в собственном классе java-скриптов. Я получил его для работы в режиме отладки; однако при компиляции для развертывания решение не работает.

  await _transferIn(adapter, 5, 64).then((usbInTransferResult){
    log.finest('_transferIn.then');
    js.context['console'].callMethod('log', [usbInTransferResult]);

    var rxLen = usbInTransferResult['data']['byteLength'];  <<<<< Fails
    for( var index = 0; index < rxLen; index++ ){
      rxData.add(usbInTransferResult['data'].callMethod('getUint8', [index]));  <<<<< Fails
    };

    log.finest(rxData);
    return completer.complete(rxData);
  });

Приведенный выше код считывает пакет данных, полученный через USB (WebUSB). Он читает полученную длину пакета и копирует каждый байт в List<int>, В обоих местах (чтение собственности byteLength и вызов метода getUint8([index]) не удается только при компиляции для развертывания.

Ниже картина сообщенной ошибки Ошибка снимка

Ниже приведено изображение успешного запуска (в режиме отладки). Обратите внимание на дополнительные символы DART (которые отсутствуют на рисунке выше). Успех снимка

пс. Я использую DART-SDK 2.0.0 (пробовал также 2.1.0-dev.8.0) и Angular-DART 5.0.0 в рамках проекта WebStorm.

1 ответ

Увидеть js пакет и документация о том, как обернуть javascript API чем-то вызываемым из Dart.

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