В планируемом обновление 5.2.0 добавлю новый контекстный метод yield (будет требоваться поддержка генераторов).
var result = $C({ ...очень большой объект... }).map(function (el, key, data, i) {
this.$.i = this.$.i || 1;
if (i === 1e6 * this.$.i) {
this.$.i++;
this.yield();
}
});
$C.onFinish(result, function (value) {
...
});
Т.е. метод this.yield(); прерывает выполнение операции и возвращает объект:
{
done: true / false,
result: ...
}
Таким образом дробление сложной операции будет осуществляться очень просто. Работу над обновлением планирую начать сразу же, после окончания работа над Snakeskin 4.