Здравствуйте, я пишу приложение, в котором мне нужно иметь возможность перебирать массив 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;
}
});
Приведенный выше код - это то, что я пытался сделать. Если у кого-то есть какие-либо идеи, это было бы огромной помощью, спасибо!
vo(innerRun)
. Если есть ошибка, я хотел бы зарегистрировать эту ошибку, но продолжайте. - person rpascal   schedule 04.12.2017