您好,我正在编写一个应用程序,我需要能够遍历一组URL。我知道有一个如何做到这一点的例子,但我的问题有点不同,我将用一些代码解释。
nightmare
.goto('some url')
.evaluate(() => {
//evaluate code
})
.then(dataArray => {
var innerRun = function* () {
var returnData = [];
for (var i = 0; i < dataArray.length; i++) {
var item = dataArray[i];
yield nightmare
.goto(item.url)
.evaluate(function () {
return false;
})
.screenshot(item.imgPath)
returnData.push(item);
}
return returnData;
}
vo(innerRun)(function (err, ads) {
if (err) {
console.log("Error running", err)
return;
}
});
});
我希望能够通过使用url数组来循环该代码。我有实现这个问题,我相信因为我已经在then
内完成了。它会在点击yield nightmare
then
后停止投放
var mainLoop = function* () {
for (var j = 0; j < urlArray.length; j++) {
var url = urlArray[j];
yield nightmare.goto(url)//same code as in example above
}
}
vo(mainLoop)(function (err, d) {
if (err) {
console.log("Error running", err)
return;
}
});
以上代码是我试图做的。如果有人有任何想法,那将是一个巨大的帮助,谢谢你!
答案 0 :(得分:0)
也许试试这个:
var urls = ['http://example.com', 'http://example2.com', 'http://example3.com'];
var results = [];
urls.forEach(function(url) {
nightmare.goto(url)
.wait('body')
.title()
.then(function(result) {
results.push(result);
});
});
console.dir(results)