javascript - 数组在嵌套函数中可用,但不在同一级别?

标签 javascript node.js

我面临这个奇怪的问题,我的数组变量的内容在嵌套函数中可用,但不在声明它的同一级别上?

  const add_opted_out = (req, res) => {
          var opted_out = new Array()
          axios.get(url).then((res) => {
            parseString(res.data, (err, result) => {
            opted_out.push('a')
            // prints members
            console.log(opted_out)
            })
          }).catch((err) => {
            console.log(`error occured: ${err}`)
          })
          // prints nothing
          console.log(opted_out)

为什么会出现这种行为?

最佳答案

填充opted_out的代码是异步的。在填充 opted_out 之前,您的 console.log 不打印任何实际执行的内容。

当服务器响应您的请求时,将执行 .then 调用中的函数。

关于javascript - 数组在嵌套函数中可用,但不在同一级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48230071/

相关文章:

javascript - 如何将 csv 文件从 django 中的静态加载到 javascript 函数中

javascript - 通过 gm 流式传输使用 Express.js 上传的文件以消除双写

javascript - 寻找一个jQuery插件来绘制饼图

JavaScript 或 NPM 模块,用于检查两个对象的属性是否冲突/碰撞

asp.net - 将 ASP.NET Core 3.1 与 Node.js 一起使用?

node.js - 函数内部函数的 Sinon Spy/Stub(私有(private)函数)

javascript - jquery 将 .val() 放在 DIV 的什么位置?

javascript - 在 Angular JS 中第一次拒绝 promise 时停止/退出循环

node.js - 在 Mongoose 中创建索引和在 MongoDB 中创建索引有什么区别吗?

node.js - 消息 "the term ' ng' 未被识别为 cmdlet 的名称”