complete observers

This commit is contained in:
Jesse Lucas 2020-03-24 13:17:32 -04:00
parent 7d59dc6c18
commit 598dc991e8
2 changed files with 7 additions and 4 deletions

View File

@ -19,7 +19,8 @@ export class FolderService {
getFolderStatusInOrder(observer: Subscriber<Folder>, startIndex: number) { getFolderStatusInOrder(observer: Subscriber<Folder>, startIndex: number) {
// Return if there aren't any folders at the index // Return if there aren't any folders at the index
if (startIndex >= (this.folders.length - 1)) { if (startIndex >= (this.folders.length - 1)) {
return observer.complete();
return;
} }
const folder: Folder = this.folders[startIndex]; const folder: Folder = this.folders[startIndex];
@ -41,7 +42,6 @@ export class FolderService {
*/ */
getAll(): Observable<Folder> { getAll(): Observable<Folder> {
const folderObservable: Observable<Folder> = new Observable((observer) => { const folderObservable: Observable<Folder> = new Observable((observer) => {
this.systemConfigService.getFolders().subscribe( this.systemConfigService.getFolders().subscribe(
folders => { folders => {
this.folders = folders; this.folders = folders;
@ -49,7 +49,8 @@ export class FolderService {
// Synchronously get the status of each folder // Synchronously get the status of each folder
this.getFolderStatusInOrder(observer, 0); this.getFolderStatusInOrder(observer, 0);
}, },
err => { console.log("getAll error!", err) } err => { console.log("getAll error!", err) },
() => { console.log("get all complete!") }
); );
}); });
return folderObservable return folderObservable

View File

@ -45,12 +45,14 @@ export class SystemConfigService {
const folderObservable: Observable<Folder[]> = new Observable((observer) => { const folderObservable: Observable<Folder[]> = new Observable((observer) => {
if (this.folders) { if (this.folders) {
observer.next(this.folders); observer.next(this.folders);
observer.complete();
} else { } else {
// create timer to keep checking for folders // create timer to keep checking for folders
let t = setInterval(() => { let t = setInterval(() => {
if (this.folders) { if (this.folders) {
clearInterval(t); clearInterval(t);
observer.next(this.folders); observer.next(this.folders)
observer.complete();
} }
}, this.checkInterval); }, this.checkInterval);
} }