как setTimeout предотвращает потенциальный переполнение стека

Пример :

var list = readHugeList();

var nextListItem = function() {
    var item = list.pop();

    if (item) {
        setTimeout( nextListItem, 0);
        // ^^^^^^^^ this line
    }
};

Как использование setTimeout предотвращает потенциальный переполнение стека? Я понимаю концепцию как очереди событий, так и стека, но мне трудно соединить их.

Ответы на вопрос(2)

Ваш ответ на вопрос