Мы собираем события ошибок с помощью $ exceptionHandler, внутри обратного вызова $exceptionHandler callback мы сохраняем информацию об исключении в глобальном массиве.
Но когда мы выполняем итерацию объекта exception вручную, он показывает данные, в отладчике он также показывает данные, но когда мы используем JSON.stringify(exception), он возвращает только фигурные скобки {}.
В чем может быть проблема?
Мой код внутри обратного вызова $exceptionHandler:
angular.module('myApp').factory('$exceptionHandler', ['$log', '$injector', function ($log, $injector) {
var $rootScope;
return function myExceptionHandler(exception, cause) {
debugger
$rootScope = $rootScope || $injector.get('$rootScope');
var TAG = 'myExceptionHandlerTAG';
var expJson = JSON.stringify(exception);
var eve = {
event : "error",
params : { user_id : user_id,
role : role,
time : new Date().getTime(),
code_name: navigator.appCodeName,
name: navigator.appName ,
version: navigator.appVersion ,
cookie: navigator.cookieEnabled,
language: navigator.language,
on_line: navigator.onLine,
platform: navigator.platform,
user_agent: navigator.userAgent,
exception: expJson,
cause: cause },
source : "web_app"
};
$rootScope.events_json.push(eve);
$log.error(eve);
};
}]);
Обновлять:
Содержимое объекта exception в отладчике:
Содержимое объекта expJson в отладчике:
Кроме того, я нигде не изменяю объект exception в коде, кроме присвоения другим переменным.
вероятно, объект exception изначально пуст, а затем изменен после того, как он был передан в функцию. когда вы видите в нем данные при использовании отладчика, что показывает JSON.stringify(exception) в консоли?
если вы хотите сериализовать неперечислимые свойства, вы можете попробовать что-то вроде JSON.stringify(exception, Object.getOwnPropertyNames(exception))преобразовать документ в строку
@Francesco Спасибо, ваше предложение сработало, теперь я могу видеть строковую версию исключения, пожалуйста, опубликуйте, что в качестве ответа я приму это :)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


возможно, свойства исключения не перечисляются, поэтому они не отображаются в
JSON.stringify