gpt4 book ai didi

node.js - Nightmare 循环

转载 作者:行者123 更新时间:2023-12-03 13:23:58 25 4
gpt4 key购买 nike

您好,我正在编写一个应用程序,在其中我需要能够遍历一组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;
}
});
});

我希望能够通过使用网址数组来循环该代码。我相信我在执行此操作时遇到了问题,因为我已经在 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;
}
});

上面的代码是我试图做的。如果有人有任何想法,那将是巨大的帮助,谢谢!

最佳答案

也许试试这个:

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)

资料来源: https://github.com/rosshinkley/nightmare-examples/blob/master/docs/common-pitfalls/async-operations-loops.md

关于node.js - Nightmare 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47624655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com