我正在尝试创建在同一控制器内使用的辅助方法:
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:未处理的Promise 拒绝。该错误是由抛出异步内部引起的 没有捕获块或拒绝承诺 未使用.catch()处理。 (拒绝ID:1)(节点:31904)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。在 未来,未处理的承诺拒绝将终止 具有非零退出代码的Node.js进程。
答案 0 :(得分:0)
删除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
}
答案 1 :(得分:0)
我通过以下决定解决了问题:
const update = async (req, res) => {
// auxiliar method declaration
verifyItemInStock = itemId => {
// code...
}
// ...
// method call
const hasItems = verifyItemInStock(id)
}
非常感谢您...