Monday, May 13, 2024
 Popular · Latest · Hot · Upcoming
89
rated 0 times [  92] [ 3]  / answers: 1 / hits: 11037  / 4 Years ago, tue, september 1, 2020, 12:00:00

isDeepStrictEqual() method to do object comparison but am blocked by error:


util.isDeepStrictEqual() is not a function


  1. According to official documentation: this method was introduced in v9.0.0 and I am using Node v12: https://nodejs.org/api/util.html#util_util_isdeepstrictequal_val1_val2



  2. I confirmed this method is available on command line:


    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


  3. Here is my code:


    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);
    }



More From » node.js

 Answers
9

I dont know if you have done this so first do this
util-npm


npm install util

And adding on to the @3limin4t0r answer I don't think util should be declared in the constructor.


have it as a global constant outside the class


for example


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'

which was the example for promisify right below Util doc(isDeepStrictEqual)


So either use it as a global constant or use it directly as you have used in the command line.


[#2767] Friday, August 28, 2020, 4 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
mireyag

Total Points: 73
Total Questions: 107
Total Answers: 85

Location: Ukraine
Member since Sun, Dec 13, 2020
3 Years ago
mireyag questions
Sun, Aug 15, 21, 00:00, 3 Years ago
Wed, Dec 16, 20, 00:00, 3 Years ago
Sun, Jul 5, 20, 00:00, 4 Years ago
Tue, Jan 28, 20, 00:00, 4 Years ago
;