Ошибка регистрации свойств ассоциативного массива, которые являются функциями, использующими `util.inspect` в node.js - PullRequest
0 голосов
/ 07 сентября 2011

Я использую вызов node.js util.inspect для выгрузки ассоциативного массива JavaScript в журнал.Рассматриваемый ассоциативный массив включает свойства-члены, которые являются функциями.Пример:

var pendingscreen = {};
pendingscreen['timeoutfunction'] = function(){ sendmsg(); };
pendingscreen['timeout'] = setTimeout(pendingscreen['timeoutfunction'], 1000);
console.log(util.inspect(pendingscreen));

Когда я запускаю это, я получаю эту ошибку:

TypeError: Function.prototype.toString is not generic
    at Client.toString (native)
    at String.STRING_ADD_LEFT (native)
    at isRegExp (util.js:287:14)
    at format (util.js:184:11)
    at util.js:216:19
    at Array.map (native)
    at format (util.js:193:23)
    at util.js:216:19
    at Array.map (native)
    at format (util.js:193:23)

Есть ли способ проверить элементы ассоциативного массива, где некоторые из членов могли быбыть функции?

Ответы [ 2 ]

1 голос
/ 28 октября 2011

util.inspect должен справиться с этим просто отлично. Однако в используемой версии node.js есть ошибка , которая может вызвать эту ошибку.

Это исправлено в более новой версии (> = 0.4.11).

0 голосов
/ 07 сентября 2011

Для меня это на самом деле похоже на ошибку в Node.

Обычно при выводе объекта на экран просто выводится «[Функция]».

Редактировать: Я не уверен, что это на самом деле проблема больше. Эта ошибка вызвана чем-то вроде этого:

(function(){ }).toString.call(null)

Вызов функции toString с чем-то, что не является функцией. Я понятия не имею, как это произойдет, хотя.

...