Как получить доступ к методам и свойствам в классе 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.