0

我正在尝试将 EventSource 与 Dart 一起使用。

var source = new EventSource('/myUrl');
source.on.error.add((Event e) => print('error'));
source.on.message.add((MessageEvent me)  => print(me.data));

消息很受欢迎,但总是打印“错误”。如何获得有关此错误的更多信息?我尝试使用 ErrorEvent 而不是 Event 但它失败了,因为这个事件不是 ErrorEvent

4

1 回答 1

1

我没有要测试的事件源,但我可以帮助您回答您的问题,“我怎样才能获得有关此错误的更多信息?”

改变:

source.on.error.add((Event e) => print('error'));

至:

source.on.error.add((e) {
  print('error');
});

然后,在 print 行上设置一个断点。当您在 Dartium 中调试应用程序时,这将允许您检查局部变量 e。

您还可以使用 dart2js 将应用程序编译为 JavaScript 和 Chrome 的 JavaScript 调试器,以了解有关 e.js 的更多信息。在调试器中搜索生成的 JavaScript 中的“错误”以找出放置断点的位置。

有时有用的另一个技巧是将代码更改为:

source.on.error.add((int e) => print('error'));

e 不是 int,所以 DartEditor 会给你一个警告,告诉你 e 到底是什么类型。然后,您可以使用该类型。接下来,按住 Command 键单击该类型以查看它的源代码。

我最好的建议是尝试使用 Chrome 的 JavaScript 调试器并从那里调试问题。这帮助我在过去隔离了这类问题。

于 2012-08-24T01:21:34.803 回答