5

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);
     }
    
1
  • 1
    reactjs runs on the web browser, nodejs runs on the console, they are two completely different environment Commented Sep 1, 2020 at 3:32

2 Answers 2

5

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.

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks but this is not working. Same error persists: util.isDeepStrictEqual is not a function
2

If you want to use this with "util" name:

import * as util from 'util';

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.