import {Injectable} from '@angular/core'; @Injectable() export class preloader { private static _loaders:Array> = []; public static registerLoader(method:Promise):void { preloader._loaders.push(method); } public static clear():void { preloader._loaders = []; } public static load():Promise { return new Promise((resolve, reject) => { preloader._executeAll(resolve); }); } private static _executeAll(done:Function):void { setTimeout(() => { Promise.all(preloader._loaders).then((values) => { done.call(null, values); }).catch((error) => { console.error(error); }); }); } }