В этом ответе цепочка обещаний построена рекурсивно.
Упрощенный, мы имеем:
function foo() {
function doo() {
// always return a promise
if (/* more to do */) {
return doSomethingAsync().then(doo);
} else {
return Promise.resolve();
}
}
return doo(); // returns a promise
}
Предположительно это приведет к возникновению стека вызовов и цепочки обещаний - то есть "глубокой" и "широкой".
Я ожидал бы, что всплеск памяти будет больше, чем выполнение рекурсии или создание единственной цепи обещаний.
- Это так?
- Кто-нибудь рассматривал проблемы памяти при построении цепи таким образом?
- Будет ли потребление памяти различаться между обеими листами?