最佳答案
我的自定义模块代码如下:
module.exports.PrintNearestStore = async function PrintNearestStore(session, lat, lon) {
...
}
如果在我的模块之外调用函数,它工作得很好,但是如果我在内部调用,我在运行时就会出错:
(node: 24372)未处理的承诺拒绝警告: 未处理的承诺 拒绝(拒绝 id: 1) : 参考错误: PrintNearestStore 不是 定义
当我把语法改成:
module.exports.PrintNearestStore = PrintNearestStore;
var PrintNearestStore = async function(session, lat, lon) {
}
它在模块内部开始正常工作,但在模块外部失败了——我得到了错误:
(node: 32422)未处理的承诺拒绝警告: 未处理的承诺 拒绝(拒绝 id: 1) : TypeError: mymodule 不是功能
所以我把代码改成:
module.exports.PrintNearestStore = async function(session, lat, lon) {
await PrintNearestStore(session, lat, lon);
}
var PrintNearestStore = async function(session, lat, lon) {
...
}
现在它在所有情况下都有效: 内部和外部。然而想要理解语义,如果有更美丽和更短的方式来写呢?如何正确定义和使用 异步函数: 内部和外部(导出)模块?