Использование try
- catch
- более эффективный способ проверить это, потому что есть только один обмен между Dart и Js.
Другим способом может быть для обработки вашего объектов JavaScript, как Дарт Map с:
import 'package:js/js.dart' as js;
import 'package:js/js_wrapping.dart' as jsw;
main() {
final myProxy = ...;
Map<String, dynamic> myProxyAsMap = jsw.JsObjectToMapAdapter.cast(proxy);
Iterable<String> keys = myProxyAsMap.keys;
}
Но он менее эффективен, чтобы проверить, если keys.contains("key")
чем использовать try
- catch
путь. Более того, если вы интенсивно используете этот keys
, рассмотрите возможность копирования списка с помощью keys = myProxyAsMap.keys.toList()
. Фактически myProxyAsMap.keys
все еще испечен базовым массивом js. .toList()
создаст настоящий Дарт-лист и предотвратит обмен Dart-js.