isDeepStrictEqual() 方法进行对象比较但被错误阻止:
util.isDeepStrictEqual() is not a function
根据官方文档:此方法是在 v9.0.0 中引入的,我使用的是 Node v12:https://nodejs.org/api/util.html#util_util_isdeepstrictequal_val1_val2
我确认此方法可用于命令行:
D:\>node Welcome to Node.js v12.18.2. Type ".help" for more information. > require("util").isDeepStrictEqual({'name': 'john'}, {'sex': 'male'}) false > require("util").isDeepStrictEqual({'sex': 'john'}, {'sex': 'male'}) false > require("util").isDeepStrictEqual({'sex': 'male'}, {'sex': 'male'}) true
这是我的代码:
class App extends Component { constructor(props) { super(props); var util = require('util'); var obj1 = {name: 'john'}; var obj2 = {sex: 'male'}; var result = util.isDeepStrictEqual(obj1, obj2); }
最佳答案
不知道你有没有做过所以先做这个 util-npm
npm install util
并且添加到@3limin4t0r 的回答中,我认为不应该在构造函数中声明 util。
将其作为类外的全局常量
例如
const util = require('util');
class Foo {
constructor() {
this.a = 42;
}
bar(callback) {
callback(null, this.a);
}
}
const foo = new Foo();
const naiveBar = util.promisify(foo.bar);
// TypeError: Cannot read property 'a' of undefined
// naiveBar().then(a => console.log(a));
naiveBar.call(foo).then((a) => console.log(a)); // '42'
const bindBar = naiveBar.bind(foo);
bindBar().then((a) => console.log(a)); // '42'
这是 Util doc(isDeepStrictEqual) 下方的 promisify 示例
所以要么将它用作全局常量,要么像在命令行中那样直接使用它。
关于javascript - 如何在 Node.js 中导入 util 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63680383/