Dart Js-interop:如何使用回调声明函数?

时间:2016-04-30 14:58:18

标签: dart dart-js-interop

我正在使用已编译的Dart应用中的node.js API。使用package:js绑定此api' s:

    @JS('http')
    library http;
    import "package:js/js.dart";

    external Server createServer(
[ void requestListener(IncomingMessage request, ServerResponse response)])

从main.dart调用此内容:

import "package:js/js.dart";
import "node_partly.dart" as http;

main() async {
  http.Server server = http.createServer(allowInterop(handler));
  server.listen(9876);
}

void handler(http.IncomingMessage request, http.ServerResponse response){
  response.write("Hello, from dart server! \n");
  response.write("You asked for ${request.url}");
  print(request.url);
  response.end();
}

一切正常。

但是。分析器失败并显示错误

  

警告:参数类型' JSFunction'无法分配给   参数类型'(IncomingMessage,ServerResponse)→void'。 (   例如/ main.dart:5)

问题是allowInterop会产生" JSFunction" - 供内部使用的弃用类。

从注释的角度来看 - 应该是正常的"功能"类。

如果要注意这一点,这很烦人。如果我不注意分析器错误 - 我可能会在代码中留下真正的错误。

我该如何解决?

P.S。使用最新的飞镖1.16

更新:在github https://github.com/dart-lang/sdk/issues/26371

创建了问题

0 个答案:

没有答案