Javascript “如何修复”;TypeError:无法读取属性';继承';“未定义”的定义;在React项目中?
我在做React项目。我正在尝试使用npm包Javascript “如何修复”;TypeError:无法读取属性';继承';“未定义”的定义;在React项目中?,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,我在做React项目。我正在尝试使用npm包异步轮询(),它希望使用继承节点utils的类;库内部有以下行: var inherits = hasWindow ? window.nodeUtil.inherits : require('util').inherits; var EventEmitter = hasWindow ? window.nodeEventEmitter : require('events').EventEmitter; 当然,由于应用程序在浏览器中运行,hasWindo
异步轮询
(),它希望使用继承节点utils的类
;库内部有以下行:
var inherits = hasWindow ? window.nodeUtil.inherits : require('util').inherits;
var EventEmitter = hasWindow ? window.nodeEventEmitter : require('events').EventEmitter;
当然,由于应用程序在浏览器中运行,hasWindow
是正确的。但是没有nodeUtil
或nodeEventMitter
。因此我得到了一个错误:
TypeError: Cannot read property 'inherits' of undefined
然后我尝试添加util
和events
包并执行以下操作:
window.nodeUtil = require('util');
window.nodeEventEmitter = require('events');
但我有一个错误:
TypeError: AsyncPolling is not a constructor
另一个fork能够解决这个问题,但我想尝试使用原始包,有没有办法解决这个问题?据我所知,异步轮询是一个旧的、未维护的模块,您最好避免使用它。您遇到了问题,因为模块希望存在两个全局变量nodeUtil
和nodeEventMitter
。看起来包更适合节点环境,并且依赖于浏览器中的多边形填充
我建议找一个更新的软件包,或者简单地使用setInterval
进行投票
const intervalInMilliseconds = 5000;
const timerId = setInterval(() => {
if (/* some condition is met */) {
clearInterval(timerId);
} else {
// do stuff
}
}, intervalInMilliseconds);