private loaderState = {
timeout: null,
completed: null,
}
private startLoader() {
setTimeout(() => this.onLoaderStarting(), 500);
this.loaderState.timeout = setTimeout(() => this.onLoaderTimeout(), 3000);
}
private onLoaderStarting() {
if (!this.loaderState.completed) {
this.loaderSource$.next(true)
}
}
private onLoaderTimeout() {
this.loaderState.timeout = null;
this.emitLoaderFalse();
}
private onRequestComplete() {
this.loaderState.completed = true;
this.emitLoaderFalse();
}
private emitLoaderFalse() {
if (this.loaderState.completed && !this.loaderState.timeout) {
this.loaderSource$.next(false);
}
}
1. То есть, основной callback промиса тоже является микротаской, как then, catch и finally?
2. И как объяснить, почему тогда за 3 отправляется 6, а не 3 => 4 => 5?
3. Почему очередность именно такая, то есть, почему он микротаски каждого промиса начинает добавлять по очереди, а не в глубину (как покаказал в вопросе 2)?