是否可以从外部访问.then()内部的变量?

时间:2019-07-09 07:41:31

标签: node.js asynchronous promise

我有两个文件,分别是main.js和index.js。该函数位于main.js内部,并且该对象在index.js内部被调用。

到目前为止,通过使用console.log,我可以通过使用.then()避免()来查看预期变量'newtf'的值,但是我无法访问该值在then函数之外。

第一个文件:

async function getName() {
    //main.js

    ... // unnecessary lines of code

        files.forEach(file =>
          {
            newtf = file.name;

            //console.log(`-----`+file.name);
          })
          return newtf //the variable to output
        }

第二个文件:

//index.js where the object is being called

var foo;

const a = require('./main.js');

a.getName().then(newtf => {

     foo = newtf;
    console.log(foo) //output is value of newtf
})

console.log(foo) //output is undefined

我的问题是,如何输出'foo'而不会出现未定义或未承诺的情况?我查找了许多具有类似问题的资源,但是除了.then()并等待,我无法找到将变量传递给函数之外的解决方案。预先谢谢你。

0 个答案:

没有答案