如何更新全局对象
How to update global object
我正在尝试 运行 内部的外部函数 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) 如何使其成为全局对象,以便每次调用函数时都应将现有值添加到新值?
第一个原因
// 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.js的全局对象来存储值。
https://nodejs.org/api/globals.html#globals_global
当您使用此解决方案时,您应该也可以从应用的其他部分访问该值。
我正在尝试 运行 内部的外部函数 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) 如何使其成为全局对象,以便每次调用函数时都应将现有值添加到新值?
第一个原因
// 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_linkfunction get_my_links() {
...
}
var href_link =[];
由于提升,将在 get_my_links 函数中抛出 href_link 未定义值的错误,这一定是您在上面评论中提到的情况。
electron使用node.js,所以可以使用node.js的全局对象来存储值。
https://nodejs.org/api/globals.html#globals_global
当您使用此解决方案时,您应该也可以从应用的其他部分访问该值。