【问题标题】:EventSource Error with DartDart 的 EventSource 错误
【发布时间】:2012-08-24 09:21:34
【问题描述】:

我正在尝试将 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

【问题讨论】:

  • 在上面的第二行中,您是否在处理程序中尝试了 print(e)? - 上面的清单打印字符串 'error' 而不是 Event e 的内容
  • 是的,我试过了,它只是打印:'_EventImpl@65b10ff'的实例
  • 我试过了,它打印了error,当我尝试时:source.on.error.add((ErrorEvent e) => print(e.message));我得到了这个错误Exception: type '_EventImpl@65b10ff' is not a subtype of type 'ErrorEvent' of 'e'.。也许 ErrorEvent 有一个错误?

标签: dart event-sourcing


【解决方案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 调试器并从那里调试问题。这帮助我在过去隔离了这类问题。

【讨论】:

    猜你喜欢
    • 2020-12-27
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 2021-06-03
    • 2022-12-21
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多