在Node JS Promise函数中更新变量的值

时间:2018-08-16 06:58:46

标签: javascript node.js

我正在尝试更新promise函数中的变量值。我在做什么错了?

  final val maxIter: IntParam = new IntParam(this, "maxIter", 
     "maximum number of iterations (>= 0)", ParamValidators.gtEq(0))

3 个答案:

答案 0 :(得分:2)

readFile是异步的,因此在console.log(data)有机会完成运行和更新值之前调用readFile

将代码更改为此,它将起作用:

var data="valueoutside";

wb.xlsx.readFile(filePath).then(function() {
    data="new value";
    console.log(data); 
});

另一种选择是使用同步调用:

var data="valueoutside";
var contents = wb.xlsx.readFileSync(filePath);

data="new value";

console.log(data); 

答案 1 :(得分:0)

将您的console.log(data)移至then处理程序中,您将看到更新后的值。

var data="valueoutside";

wb.xlsx.readFile(filePath).then(function(){
    data="new value";
    console.log(data);
});

一旦承诺解决,then处理程序中的函数将执行。

答案 2 :(得分:0)

ReadFile是异步函数。所以你应该先写console.log然后功能

var data="valueoutside";

wb.xlsx.readFile(filePath).then(function(){
   data="new value";
   console.log(data);
});