UnhandledPromiseRejectionWarning: ReferenceError: verifyItemInStock не определен - PullRequest
0 голосов
/ 13 октября 2019

Я пытаюсь создать вспомогательный метод для использования внутри того же контроллера:

module.exports = {

  async update(req, res) {

    // code here...

    // method call
    this.verifyItemInStock()

    // more code here ...

  },

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

}

, но получаю следующую ошибку:

(узел: 31904) UnhandledPromiseRejectionWarning: ReferenceError: verifyItemInStock не определен при обновлении (/home/netogerbi/workspaces/zombieresistance/zombieresistance/app/controllers/trade.controller.js:34:5) (узел: 31904) UnhandledPromiseRejectionWarning: предупреждениеЭта ошибка возникла либо в результате выброса внутри асинхронной функции без блока catch, либо в результате отклонения обещания, которое не было обработано с помощью .catch (). (идентификатор отклонения: 1) (узел: 31904) [DEP0018] Предупреждение об устаревании: отклонения необработанного обещания устарели. В будущем отклонения обещаний, которые не обрабатываются, завершат процесс Node.js с ненулевым кодом завершения.

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Я решил следующим образом:

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

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

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

}

Большое спасибо ...

0 голосов
/ 15 октября 2019

Удалите this и сделайте его более читабельным:

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

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


module.exports = {
  update,
  verifyItemInStock,
}

Кроме того, потребитель обещания должен иметь улов:

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...