LearnYouNode - Асинхронное жонглирование

Я прочитал некоторые из тех же самых учебных вопросов, но я все еще не могу понять.

Я понял это правильно со следующими кодами

<code>
var httpModule = require('http');
var blModule = require('bl');
var arguments = process.argv;
var urls = [ arguments[2], arguments[3], arguments[4] ];
var results = [];
var count =0;
urls.forEach(
    function(url , i)
    {       
        var printResponse = function (response)
        {   

                response.pipe(
                blModule(
                    function(err, data)
                    {
                        count++;
                        if(err)
                        return console.log(err);

                        results[i] = data.toString();
                            //if(results.length===3)
                            if(count===3)
                            {
                            for( var c=0; c < results.length; c++)
                            console.log(results[c]);
                            }

                    }
                )
            );

        }

        httpModule.get(url, printResponse);

    }
);

</code>

Часть, которую я не понимаю, - это если (count===3), я знаю, что, проверяя count == 3, я могу быть уверен, что функция обратного вызова все вызывается. Первоначально я использовал if(results.length === 3), как я думал, что это означает, что у меня есть все результаты сейчас, но это не помогает, кто-нибудь может объяснить?

Спасибо

1 ответ

Решение

Это просто вещь JS..

j = [] // j.length = 0
j[2] = 0 // now the j.length = 3 *magic*

что я понимаю, твой третий запрос самый быстрый:P

Другие вопросы по тегам