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

时间:2018-01-12 16:14:25

标签: 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)

为什么会出现这种情况?

1 个答案:

答案 0 :(得分:2)

填充opted_out的代码是异步的。 console.log之前实际执行的opted_out

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