Как получить доступ к методам и свойствам в классе java-script из DART - PullRequest
0 голосов
/ 12 ноября 2018

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

Я пытаюсь получить доступ к структуре 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]) завершаются неудачно только при компиляции для развертывания.

Ниже изображение сообщенной ошибки Snapshot Error

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

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

1 Ответ

0 голосов
/ 13 ноября 2018

См. Пакет js и документацию о том, как обернуть javascript API чем-то, что можно вызвать из Dart.

...