最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

无法从父作用域访问js所需的节点

网站源码admin17浏览0评论

无法从父作用域访问js所需的节点

无法从父作用域访问js所需的节点

所以这是我的代码的样子:

const mod = require("./module.js")
let functionA = () => {
    return new Promise((resolve, reject) => {
         databasequery("sql", (response) => {
             databasequery("sql", (response) => {
                 console.log(mod)
             });
         });
    });
}

[当我调用此函数A时,console.log()打印{},就像mod是空对象一样。但是,当我将mod定义移入函数范围时:

let functionA = () => {
    const mod = require("./module.js")
    return new Promise((resolve, reject) => {
         databasequery("sql", (response) => {
             databasequery("sql", (response) => {
                 console.log(mod)
             });
         });
    });
}

突然,我的console.log向我输出了期望的对象,以及在模块中导出的功能。

任何人都可以解释为什么更改模块范围突然使所有工作正常/中断吗?

注意:代码中没有其他地方,我不会设置/创建mod变量。

注2:显然,它们既不是函数和模块的真实名称,也不是实际内容,我的查询函数看起来也不同,但是我尝试使回调的层次结构和承诺保持不变。

注3:这是循环/递归的要求,但我不明白为什么会是一个问题。

编辑1:从所需模块中导出了一些功能。在我的模块源代码中,导出看起来像这样:

module.exports = {
    "createInstance": createInstance,
    "getCurrentWebsocket": getCurrentWebsocket
};

编辑2:我报告了nodejs

编辑3:module.js代码:pastebin/QxmxDfhm

回答如下:

我为您提供了一个很好的解释,为什么会这样。在文章末尾还提供了解决方案。希望能帮助到你。 article

发布评论

评论列表(0)

  1. 暂无评论