Как сделать последовательное выполнение скрипта?

Сам скрипт (порезан для простоты понимания, внимание на последовательность вывода сообщений 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

Результат выполнения в консоли:
b6dfefa974f848e5a789382da87ad6bd.png
Видно что функция была сразу выполнена 3 раза - function end 3, хотя внутри неё обработка ещё ни разу не завершилась end 2 например. Как поменять скрипт?

Если честно глянул на тостере вопросы на эту тему типа Как сделать последовательное выполнение функций javascript? Как выполнить функции в порядке очереди, в которых содержатся таймеры и анимации? но чё-то я не очень догоняю ответы, т.к. новичок в JS )) Есть какое ни будь понятно объяснение этой темы?
  • Вопрос задан
  • 391 просмотр
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы