如何更新全局对象
How to update global object
I正在尝试在nightmarejs
评估函数内运行外部函数。。。正如你可以在下面看到我的代码。。。
function get_my_links(url){
vo(function* () {
var nightmare = Nightmare();
var href_link = []; // i have tried making it as global without var but did not work
var title = yield nightmare
.goto('https://examply/'+url)
.evaluate(function (href_link,url,get_my_links) {
$('.myclass').each(function() {
href_link.push($(this).attr("href"));
});
if($.isNumeric($("#someid").val()))
{
get_my_links(1)
}
else{
return href_link;
}
},href_link,url);
console.log(title);
yield nightmare.end();
})(function (err, result) {
if (err) return console.log(err);
});
}
get_my_links(0)
通过上面的代码,我正在尝试更新href_link
。。。1) 如何使其成为全局对象,以便每次调用函数时都将新值与现有值相加?
1st原因// i have tried making it as global without var but did not work
不起作用,因为尽管您将对象设置为全局对象,但每次调用get_my_links函数时,它都会将全局对象更新为空数组。
对于您的用例,在定义get_my_links函数之前先定义href_link。像
var href_link =[];
function get_my_links() {
...
}
在函数定义后定义href_link,如->
function get_my_links() {
...
}
var href_link =[];
由于提升,将在get_my_links函数内抛出一个未定义href_link值的错误,这一定是您在上面的评论中提到的情况。
electron使用node.js,因此您可以使用node.jss的全局对象来存储值。
https://nodejs.org/api/globals.html#globals_global
当您使用此解决方案时,您应该能够从应用程序的其他部分访问价值。
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- javascript无法重新定义函数内部的全局对象
- Javascript,从静态函数中打印全局对象
- 为什么“this”指的是全局对象
- Do let语句在全局对象上创建属性
- underscore.js,名为“”的全局对象;出口;和livefyre javascript API-集成冲突
- 为什么“this”指的是对象“obj”而不是全局对象
- 从函数调用全局对象的方法
- 谷歌分析的全局对象
- AngularJS:避免使用“angular”全局对象
- Javascript Web Worker 修改全局对象
- 想要在回调中更新对象,给出正确的日志,但全局对象未更新
- 让函数中的接收器默认为全局对象背后的基本原理是什么?
- 蜘蛛猴:如何删除全局对象
- 为什么函数在全局对象中不可用
- 访问请求会在全局对象中生成
- 全局对象问题
- React Native 中全局对象的模式
- Expressjs - 全局对象
- 是否可以在 Javascript 中更改或删除全局对象的属性