Ошибка EventSource с Dart

Я пытаюсь использовать 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

1 ответ

У меня нет источника событий для тестирования, но я могу помочь вам ответить на ваш вопрос: "Как я могу получить больше информации об этой ошибке?"

Изменить:

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

Для того, чтобы:

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

Затем установите точку останова на строке с печатью. Это позволит вам проверить локальную переменную e при отладке приложения в Dartium.

Вы также можете использовать dart2js для компиляции приложения в JavaScript и отладчик JavaScript в Chrome, чтобы узнать больше о e. Выполните поиск "ошибки" в сгенерированном JavaScript в отладчике, чтобы выяснить, где поставить точку останова.

Другой полезный трюк - изменить код на:

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

Он не является int, поэтому DartEditor выдаст вам предупреждение, сообщающее вам, что тип e на самом деле. Затем вы можете использовать этот тип. Затем, нажмите Ctrl + клик по этому типу, чтобы посмотреть его исходный код.

Мой лучший совет - попытаться использовать JavaScript-отладчик Chrome и отладить проблему оттуда. Это помогло мне изолировать подобные проблемы в прошлом.

Другие вопросы по тегам