【发布时间】:2016-02-16 03:35:57
【问题描述】:
我正在尝试在nightmarejs evalute 函数中运行一个外部函数...您可以在下面看到我的代码...
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) 如何使其成为全局对象,以便每次调用函数时都应在现有值中添加新值?
【问题讨论】:
-
根据代码 cmets,您尝试不添加 var,只需尝试在函数外使用
var href_link = [];声明然后function get_my_links(url) -
尝试将其添加到外部...但
evaluate检测为未定义href_link -
为什么不使用局部变量并将其作为参数提供给
callback函数?它对你不起作用可能是因为它是一个异步调用并且全局变量没有立即更新。
标签: javascript jquery node.js electron nightmare