Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   ProcessMessages (https://javascript.ru/forum/misc/1609-processmessages.html)

Aetae 12.09.2014 17:13

kobezzza, ну ему всё равно чтоб это использовать придётся раскрыть рекурсию.)

kobezzza 12.09.2014 17:21

Цитата:

Сообщение от Aetae (Сообщение 330269)
kobezzza, ну ему всё равно чтоб это использовать придётся раскрыть рекурсию.)

Зачем? Можно же плодить рекурсивные потоки.

function doIt(data) {
    return $C(data).forEach(function (el) {
        if (typeof el === 'object') {
            this.wait(doIt(el));
        }
    }, {thread: true});
}


Т.е. поток создающий поток и т.д.

Но переполнение стека в таком случае никто не отменял :)

Aetae 12.09.2014 17:43

kobezzza, оппа, почему-то мне после ознакомления не пришло в голову использование таким образом. Взгляд замылился об использование в итерациях.
Возможно стоит сделать рекламный пример "рекурсивное вычисление [что-то ресурсоёмкое] без подвисания браузера".
А может просто я тупой, и все и так поймут - не стал бы такого исключать.)

kobezzza 12.09.2014 17:54

Ну пока промышленное использование только в ноде возможно, т.к. из браузеров генераторы поддерживает сейчас ФФ и Хром (правда нужно включить флаг). ИЕ должен в 12-й версии научится.

Следует заметить, что всё итерационные операции Collection поддерживают потоки, а не только forEach.

$C(...).map(Math.sqrt, {thread: true, onComplete: function (result) { ... }});


Цитата:

Возможно стоит сделать рекламный пример "рекурсивное вычисление [что-то ресурсоёмкое] без подвисания браузера".
Я добавлю это в доку.


Часовой пояс GMT +3, время: 20:48.