蔭試圖運行裏面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)如何使它成爲Global對象,這樣每次調用函數的新值都應該與現有值一起添加?
根據代碼註釋,您嘗試不添加var,只需嘗試用'var href_link = [];聲明; '在函數之外,然後'函數get_my_links(url)' – rajuGT
試圖在外面添加它......但'evaluate'檢測爲未定義的'href_link' –
爲什麼不使用局部變量並將其作爲參數提供給'callback'函數?它不適合你,可能是因爲它是一個異步調用,並且全局變量沒有立即更新。 – activatedgeek