2
votes

I'm trying to create an auxiliar method to use inside the same controller:

module.exports = {

  async update(req, res) {

    // code here...

    // method call
    this.verifyItemInStock()

    // more code here ...

  },

  // method declaration
  verifyItemInStock (itemId) {
      // more code...
  }

}

but I'm getting the following error:

(node:31904) UnhandledPromiseRejectionWarning: ReferenceError: verifyItemInStock is not defined at update (/home/netogerbi/workspaces/zombieresistance/zombieresistance/app/controllers/trade.controller.js:34:5) (node:31904) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:31904) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

2
This works for me. Can you add the code which explains how u r using this.Suresh Prajapati

2 Answers

0
votes

Remove the this and make it more readable:

// method declaration
const verifyItemInStock = itemId => {
  // more code...
}

const update = async (req, res) => {
  // code here...
  // method call
  verifyItemInStock()
  // more code here ...
}


module.exports = {
  update,
  verifyItemInStock,
}

Also, the consumer of the promise should have a catch:

import { update } from './my-module';

update(req, res).then(...).catch(...)
// or
try {
  const resolved = await update(req, res);
  // consume the resolved value
} catch (e) {
  // exception handling
}
0
votes

I resolved by the following:

const update = async (req, res) => {

  // auxiliar method declaration
  verifyItemInStock = itemId => {
      // code...
  }

  // ...
  // method call
  const hasItems = verifyItemInStock(id)

}

Thank you very much...