var xhr1 = new XMLHttpRequest();
var xhr2 = new XMLHttpRequest();
var xhr3 = new XMLHttpRequest();
var xhr4 = new XMLHttpRequest();
var xhr5 = new XMLHttpRequest();
xhr1.open('GET', 'mega_big_file', true);
xhr2.open('GET', 'mega_big_file', true);
xhr3.open('GET', 'mega_big_file', true);
xhr4.open('GET', 'mega_big_file', true);
xhr5.open('GET', 'mega_big_file', true);
xhr1.send();
xhr2.send();
xhr3.send();
xhr4.send();
xhr5.send();
Как я понял, js, который не относится к webapis работает в 1 поток, а тот, который относится к webapis может работать в несколько потоков (например если сделать запустить 100 setTimeout с большой задержкой, например в 100 секунд, то попадая в webapis эти таймеры будут параллельно отсчитывать секунды, а не по очереди) и ставить результат выполнения своей работы в очередь на один поток в callstack.
Получается асинхронность в данном случае это возможность поставить выполнение какой-либо задачи в очередь перед другими задачами. И параллельное выполнение задач есть, но как-бы не в самом js, а только в webapis функциях https://developer.mozilla.org/ru/docs/Web/API
Я правильно понял?