【发布时间】:2018-03-24 17:42:56
【问题描述】:
我的自定义模块包含以下代码:
module.exports.PrintNearestStore = async function PrintNearestStore(session, lat, lon) {
...
}
如果在我的模块外部调用该函数,它工作正常,但是如果我在内部调用,我在运行时出错:
(node:24372) UnhandledPromiseRejectionWarning: 未处理的承诺 拒绝(拒绝 id:1):ReferenceError:PrintNearestStore 不是 定义
当我将语法更改为:
module.exports.PrintNearestStore = PrintNearestStore;
var PrintNearestStore = async function(session, lat, lon) {
}
它开始在模块内正常工作,但在模块外失败 - 我收到错误:
(node:32422) UnhandledPromiseRejectionWarning: 未处理的承诺 拒绝(拒绝 id:1):TypeError:mymodule.PrintNearestStore 是 不是函数
所以我将代码更改为:
module.exports.PrintNearestStore = async function(session, lat, lon) {
await PrintNearestStore(session, lat, lon);
}
var PrintNearestStore = async function(session, lat, lon) {
...
}
现在它适用于所有情况:内部和外部。但是想了解语义,如果有更漂亮和更短的方法来编写它?如何正确定义和使用async函数:内部和外部(导出)模块?
【问题讨论】:
标签: javascript node.js async-await