<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=Javascript_-_XMLHttpRequest_%D0%BF%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0</id>
	<title>Javascript - XMLHttpRequest подробный анализ примера - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=Javascript_-_XMLHttpRequest_%D0%BF%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0"/>
	<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=Javascript_-_XMLHttpRequest_%D0%BF%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0&amp;action=history"/>
	<updated>2026-04-03T21:49:00Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.1</generator>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=Javascript_-_XMLHttpRequest_%D0%BF%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0&amp;diff=557&amp;oldid=prev</id>
		<title>imported&gt;Vix: Новая страница: « &lt;nowiki&gt;function parallel() {  var first = arguments[0];                                  //берем из списка аргументов первый (ну…»</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=Javascript_-_XMLHttpRequest_%D0%BF%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0&amp;diff=557&amp;oldid=prev"/>
		<updated>2013-08-24T10:40:43Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: « &amp;lt;nowiki&amp;gt;function parallel() {  var first = arguments[0];                                  //берем из списка аргументов первый (ну…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt; &amp;lt;nowiki&amp;gt;function parallel() {&lt;br /&gt;
 var first = arguments[0];                                  //берем из списка аргументов первый (нулевой)&lt;br /&gt;
 if( first ) {                                              // если первый (нулевой) аргумент  есть&lt;br /&gt;
    var results, methods = [], callback = function(){};     //объявляем переменные&lt;br /&gt;
    if(first.constructor === Function) {                    //если первый (нулевой) аргумент функция 						                            &lt;br /&gt;
                                                            //(коструктор объекта - функция)&lt;br /&gt;
        results = [];                                       //пустой массив результатов&lt;br /&gt;
        if(arguments !== undefined)                         //если  аргументы не  undefined  т.е. существуют&lt;br /&gt;
        for( var i=0, l=arguments.length; i&amp;lt;l; ++i ) {      //все аргументы по порядку&lt;br /&gt;
            var value = arguments[i];                       //значение i-того аргумента в кэш&lt;br /&gt;
            if(i !== l-1) {                                 //не могу понять смысл это выражения (если i не равно 0 в противном случае -1 , т.е false)&lt;br /&gt;
                methods.push( value );                      //добавляем значение начение i-того аргумента в конец массива  methods&lt;br /&gt;
            }&lt;br /&gt;
            else {                                          //иначе&lt;br /&gt;
                callback = value;                           //callback присваиваем значение кэша&lt;br /&gt;
            }&lt;br /&gt;
        }   &lt;br /&gt;
        methods.iterate(function(func, i) {                 //объеку methods добавляем метод iterete&lt;br /&gt;
            nextTick(function() {&lt;br /&gt;
                func.call({&lt;br /&gt;
                    end : function( res ) {&lt;br /&gt;
                        methods[i].__done__ = true;&lt;br /&gt;
                        results[i] = res;&lt;br /&gt;
                    }&lt;br /&gt;
                })&lt;br /&gt;
            })&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        var keys = [];&lt;br /&gt;
        results  = {};&lt;br /&gt;
        callback = arguments[1] !== undefined ? arguments[1] : function(){}; &lt;br /&gt;
        var methodsData = first;&lt;br /&gt;
        for( var i in first ) {&lt;br /&gt;
            keys.push( i );&lt;br /&gt;
            methods.push( first[i] );&lt;br /&gt;
        }&lt;br /&gt;
        methods.iterate(function(func, i) {&lt;br /&gt;
            nextTick(function() {&lt;br /&gt;
                func.call({&lt;br /&gt;
                    end : function( res ) {&lt;br /&gt;
                        methods[i].__done__ = true;&lt;br /&gt;
                        results[keys[i]] = res;&lt;br /&gt;
                    }&lt;br /&gt;
                })&lt;br /&gt;
            })&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
function isDone() {&lt;br /&gt;
    var done = true;&lt;br /&gt;
    for(var i=0, l=methods.length; i&amp;lt;l; ++i) {&lt;br /&gt;
        if(!methods[i].__done__) {&lt;br /&gt;
            done = false;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    return done;&lt;br /&gt;
}&lt;br /&gt;
function finish() {&lt;br /&gt;
    nextTick(function() {&lt;br /&gt;
        var done = isDone();&lt;br /&gt;
        if(!done) {&lt;br /&gt;
            finish();&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            if( results.constructor === Array ) {&lt;br /&gt;
                callback.apply( Global, results );&lt;br /&gt;
            }&lt;br /&gt;
            else {&lt;br /&gt;
                callback( results );&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
nextTick(finish);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;Vix</name></author>
	</entry>
</feed>