javascript - 更新全局变量
问题描述
我的代码片段首先:
let GLOBAL_VAR_A = 'string1';
let GLOBAL_VAR_B = 'string2';
let GLOBAL_VAR_C = []; // Empty array
let GLOBAL_VAR_D = []; // Empty array
...
start = async () => {
...
if(...) {
await updateNews(GLOBAL_VAR_A, GLOBAL_VAR_B, GLOBAL_VAR_C, GLOBAL_VAR_D);
console.log(GLOBAL_VAR_C); // => [] (empty) (NOT OK)
console.log(GLOBAL_VAR_D); // => [object Object] = nextNews (OK!!)
...
}
};
updateNews = async (sourcePath, webResource, previousNews, nextNews) => {
previousNews = await getPreviousNews(sourcePath, previousNews);
console.log('FFF = ' + previousNews); // => FFF = [object Object] (Ok)
...
nextNews.push({
id: i + 1,
title: justGottenNews[i].title,
url: justGottenNews[i].link
});
}
getPreviousNews = async (sourcePath, previousNews) => {
let data = await fs.readFileSync(sourcePath, 'utf8');
prevNews = previousNews.concat(JSON.parse(data));
return prevNews;
};
...
我的问题(问题)如下:
当我调用函数updateNews()时,我会传递一些参数 - 全局变量。GLOBAL_VAR_C默认是一个空数组,它被传递给updateNews()函数。此外,这个变量被传递给getPreviousNews()函数。此函数返回一个新数组 ( prevNews ) - 连接空数组并从文件中接收。
然后我想重新定义变量previousNews的值。在函数updateNews()内部,它的值是正确的(返回数组)。
如何进一步重新定义传递的GLOBAL_VAR_C变量的值?它应该等于previousNews。但是当我控制台日志它仍然返回空数组。
有趣的一点是nextNews在updateNews()函数内更新(方法push())并且GLOBAL_VAR_D也被更新
解决方案
我的解决方案是使用updateNews()中的push()方法更新全局变量
推荐阅读
- tslint - tslint:如何确保变量不是未定义的?
- php - 使用 html 下拉菜单单击更改 PHP 项目
- php - 只有当用户查看自己的个人资料而不是其他人的个人资料时,我才能使某些文本对用户可见?
- python-3.x - 如何使按钮在文本更改长度时保持原位
- mysql - Laravel 错误:违反完整性约束
- visual-foxpro - 如何使用like函数检查字符表达式是否在文本开头包含“*”
- c# - 发送 xml 我收到错误 415 不支持的媒体类型
- android - 在 Android Firefox 上添加到主屏幕不会屏蔽图标
- python - 使用 Spacy Python 将名称替换为序列号
- r - 用于条件分解的 R 浮点问题