Сам скрипт (порезан для простоты понимания, внимание на последовательность вывода сообщений console log)
var urls = ["https://market...", "https://market...", "https://market..."];
var numurls = urls.length;
console.log('Pred for');
for (u = 0; u < numurls; u++) {
console.log('for started');
var fs = require('fs');
var webPage = require('webpage');
var page = webPage.create();
console.log('link '+ urls[u]);
page.open(urls[u], function(status) {
console.log('Status: ' + status);
if (status === 'success') {
for (i = 0; i < longtext; i++) {
//нужные действия
}
console.log('end 1');
}
console.log('end 2');
});
console.log('function end 3');
} // конец цикла 1 url
Результат выполнения в консоли:
Видно что функция была сразу выполнена 3 раза -
function end 3, хотя внутри неё обработка ещё ни разу не завершилась
end 2 например. Как поменять скрипт?
Если честно глянул на тостере вопросы на эту тему типа
Как сделать последовательное выполнение функций javascript? Как выполнить функции в порядке очереди, в которых содержатся таймеры и анимации? но чё-то я не очень догоняю ответы, т.к. новичок в JS )) Есть какое ни будь понятно объяснение этой темы?