fix: do not hang when swagger doesn't contain any paths

closes #216
This commit is contained in:
Roman Hotsiy 2017-03-09 23:04:15 +02:00
parent 3e09b0588a
commit e4f5388076
No known key found for this signature in database
GPG Key ID: 5CB7B3ACABA57CB0
2 changed files with 13 additions and 3 deletions

View File

@ -141,7 +141,7 @@ export class MenuService {
onHashChange(hash?: string) {
if (hash == undefined) return;
let activated = this.activateByHash(hash);
if (!this.tasks.empty) {
if (!this.tasks.processed) {
this.tasks.start(this.activeIdx, this);
this.scrollService.setStickElement(this.getCurrentEl());
if (activated) this.scrollToActive();

View File

@ -31,6 +31,7 @@ export class LazyTasksService {
private _tasks = [];
private _current: number = 0;
private _syncCount: number = 0;
private _emptyProcessed = false;
private menuService;
public loadProgress = new BehaviorSubject<number>(0);
@ -38,8 +39,10 @@ export class LazyTasksService {
constructor(public optionsService: OptionsService) {
}
get empty() {
return this._current === this._tasks.length;
get processed() {
let res = this._tasks.length && (this._current >= this._tasks.length) || this._emptyProcessed;
if (!this._tasks.length) this._emptyProcessed = true;
return res;
}
set syncCount(n: number) {
@ -97,10 +100,17 @@ export class LazyTasksService {
} else {
this.sortTasks(idx);
}
syncCount = Math.min(syncCount, this._tasks.length);
if (this.allSync) syncCount = this._tasks.length;
for (var i = this._current; i < syncCount; i++) {
this.nextTaskSync();
}
if (!this._tasks.length) {
this.loadProgress.next(100);
return;
}
this.nextTask();
}
}