如何使用C / C ++编写的函数从dart进行异步调用?

时间:2019-02-12 06:37:34

标签: c++ c dart

我仔细阅读了文章 https://www.dartlang.org/articles/server/native-extensions ,首先决定只测试 sdk-master / samples / sample_extension 文件夹中的标准示例。同步调用有效,但是在执行 $ dart test_sample_asynchronous_extension.dart 命令时,会出现“未处理的异常”错误:

~/Downloads/sdk-master/samples/sample_extension $ dart test_sample_asynchronous_extension.dart
Unhandled exception:
type 'Future<dynamic>' is not a subtype of type 'Future<List<int>>'
#0      RandomArray.randomArray (file:///home/michael_k/Downloads/sdk-master/samples/sample_extension/sample_asynchronous_extension.dart:32:5)
#1      main (file:///home/michael_k/Downloads/sdk-master/samples/sample_extension/test_sample_asynchronous_extension.dart:17:5)
#2      _startIsolate.<anonymous closure> (dart:isolate/runtime/libisolate_patch.dart:289:19)
#3      _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
~/Downloads/sdk-master/samples/sample_extension $

有人知道如何解决问题吗?

1 个答案:

答案 0 :(得分:0)

我可以看到该示例的示例文件最近已更新。尝试使用此文件的最新版本: https://github.com/dart-lang/sdk/blob/master/samples/sample_extension/sample_asynchronous_extension.dart

最近的更改如下,似乎可以解决您的问题:

之前:

    var completer = new Completer();

之后:

    var completer = new Completer<List<int>>();