无法让变量在 Node js 的函数之外可见?

我需要使index_to_write变量在函数外部可见。我怎样才能使这成为可能?


const XlsxPopulate = require('xlsx-populate');

let found = false;

let i = 1;

let index_to_write = 0;

XlsxPopulate.fromFileAsync("todo-list.xlsx")

    .then(workBook => {

        while (i <= 10 && found === false){

            const value = workBook.sheet("Do-Shopping").cell("A" + i.toString()).value();

            if (value === undefined) {

                found = true;

                index_to_write = i.toString();

            }

            i++;

        }

    });

console.log("A " + index_to_write + " is the first one to be free of data");

我尝试return index_to_write;在下面添加index_to_write = i.toString();但它不能解决问题。


目前,它显示0,与初始化时一样,但它应该打印4。如何修复它?


非常感谢您!


偶然的你
浏览 73回答 1
1回答

慕莱坞森

由于您在函数外部声明了变量,因此您可以看到它。如果不是这种情况,结果将是 undefined 而不是 0。但是 XlsxPopulate.fromFileAsync 是一个异步函数并返回一个承诺,并且在调用该方法时不一定会立即运行。因此,您的控制台线路将在承诺解决之前运行。所以执行顺序是:1. let index_to_write = 0;2. XlsxPopulate.fromFileAsync("todo-list.xlsx")3. console.log("A " + index_to_write + " is the first one to be free of data");4. then(workBook => { ...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript