2017-01-19 1 views
-1

Я использую запрос, чтобы http получить запросы и получить html некоторых страниц.Как вы узнаете, когда все запросы асинхронных вызовов, которые вы вызвали?

Код, который я использую, имеет эту структуру.

function updateAll() 
{ 
    request(mainurl, function(error, response, html){ 
     //get urls from html 
     Array.from(urls).forEach(function(url) { 
      update1(url); 
     }); 
    }); 
} 

function update1(url) 
{ 
    request(url, function(error, response, html){ 
     //get urls from html 
     Array.from(urls).forEach(function(url) { 
      update2(url); 
     }); 
    }); 
} 

function update2(url) 
{ 
    request(url, function(error, response, html){ 
     //get urls from html 
     Array.from(urls).forEach(function(url) { 
      results.push(url); 
     }); 
    }); 
} 

Как я узнаю, когда он заканчивает обновление? Спасибо.

+1

Вы должны рассмотреть возможность использования 'Promise' – baao

+0

Обратные вызовы, обещания, наблюдения (события излучатели) – INgeek

ответ

0

Лучшим решением здесь является использование API Promises. Но в случае необработанного решения: вы можете добавить параметры обратного вызова ко всем вашим функциям и ждать, пока последний из них будет запущен.