1
我正在嘗試瀏覽在線詞典的頁面。這裏是我的代碼:內部函數不知道外部作用域中定義的變量。爲什麼?
var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: true });
var links = [];
function goToLink(linkName){
nightmare
.goto(linkName)
.evaluate(() => {
var href = document.querySelector("span.next a").href;
links.push(href)
return href;
})
.then((href) => {
goToLink(href);
})
.catch((error) => {
console.error('Error:', error);
});
}
goToLink("http://lexicon.quranic-research.net/data/01_a/000_!.html");
我得到Error: links is not defined
。鏈接明確定義在var links = [];
但內部函數不知道它。這裏發生了什麼?
我可以想象,「評估」將參數串聯起來,並在不同的環境中進行處理。編輯:見https://github.com/segmentio/nightmare/issues/89 –
你知道了Felix。我如何接受評論作爲答案? –
@FelixKling請添加評論作爲迴應。 – caisah