Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更新节点js promise函数中变量的值_Javascript_Node.js - Fatal编程技术网

Javascript 更新节点js promise函数中变量的值

Javascript 更新节点js promise函数中变量的值,javascript,node.js,Javascript,Node.js,我试图更新promise函数中变量的值。我做错了什么 var data=“valueoutside”; readFile(filePath).then(function()){ data=“新值”; } ); 控制台日志(数据); //将“valueoutside”显示为输出,而不是“new value”readFile是异步的,因此在readFile有机会完成运行和更新值之前调用console.log(data) 将您的代码更改为此,它将工作: var data="valueoutside"

我试图更新promise函数中变量的值。我做错了什么

var data=“valueoutside”;
readFile(filePath).then(function()){
data=“新值”;
}
);
控制台日志(数据);

//将“valueoutside”显示为输出,而不是“new value”
readFile
是异步的,因此在
readFile
有机会完成运行和更新值之前调用
console.log(data)

将您的代码更改为此,它将工作:

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); 

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

将您的代码更改为此,它将工作:

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); 

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

var data="valueoutside";

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

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

控制台。日志(数据)
移动到
then
处理程序中,您将看到更新的值

var data="valueoutside";

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

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

ReadFile是异步函数。所以,您应该先编写console.log,然后再编写函数

var data="valueoutside";

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

ReadFile是异步函数。所以,您应该先编写console.log,然后再编写函数

var data="valueoutside";

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

readFile
是异步的,因此
控制台。log
之前执行,然后
被激发
readFile
是异步的,因此
控制台。log
之前执行,然后
被激发