为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

偶然的你 2024-01-18 16:23:54
我需要使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。如何修复它?非常感谢您!
查看完整描述

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

由于您在函数外部声明了变量,因此您可以看到它。如果不是这种情况,结果将是 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 => { ...


查看完整回答
反对 回复 2024-01-18
  • 1 回答
  • 0 关注
  • 29 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信