From 0df7771ee032256340340ebcace44c3c51a91481 Mon Sep 17 00:00:00 2001 From: vakrilov Date: Fri, 8 Apr 2016 18:36:19 +0300 Subject: [PATCH] Return Promise form nativeScriptBootstrap --- ng-sample/app/app.ts | 6 +- src/nativescript-angular/application.d.ts | 2 +- src/nativescript-angular/application.ts | 69 ++++++++++++----------- 3 files changed, 43 insertions(+), 34 deletions(-) diff --git a/ng-sample/app/app.ts b/ng-sample/app/app.ts index 79c2143df..d1017c8cd 100644 --- a/ng-sample/app/app.ts +++ b/ng-sample/app/app.ts @@ -27,7 +27,11 @@ import {ModalTest} from "./examples/modal/modal-test"; import {PlatfromDirectivesTest} from "./examples/platform-directives/platform-directives-test"; import {RouterOutletTest} from "./examples/navigation/router-outlet-test"; -nativeScriptBootstrap(RendererTest); +nativeScriptBootstrap(RendererTest).then((compRef) => { + console.log("nativeScriptBootstrap resloved: " + compRef); +}).catch((e) => { + console.log("nativeScriptBootstrap error: " + e); +}); //nativeScriptBootstrap(Benchmark); //nativeScriptBootstrap(ListTest); //nativeScriptBootstrap(ListTestAsync); diff --git a/src/nativescript-angular/application.d.ts b/src/nativescript-angular/application.d.ts index 904fc0250..cf6fd0b18 100644 --- a/src/nativescript-angular/application.d.ts +++ b/src/nativescript-angular/application.d.ts @@ -7,4 +7,4 @@ export interface AppOptions { export type ProviderArray = Array>; export function bootstrap(appComponentType: any, componentInjectableBindings?: ProviderArray): Promise; -export function nativeScriptBootstrap(appComponentType: any, customProviders?: ProviderArray, appOptions?: any): void; +export function nativeScriptBootstrap(appComponentType: any, customProviders?: ProviderArray, appOptions?: any): Promise; diff --git a/src/nativescript-angular/application.ts b/src/nativescript-angular/application.ts index c48610413..7cc9baae5 100644 --- a/src/nativescript-angular/application.ts +++ b/src/nativescript-angular/application.ts @@ -78,41 +78,46 @@ export function bootstrap(appComponentType: any, return _platform.application(appProviders).bootstrap(appComponentType); } -export function nativeScriptBootstrap(appComponentType: any, customProviders?: ProviderArray, appOptions?: AppOptions) { +export function nativeScriptBootstrap(appComponentType: any, customProviders?: ProviderArray, appOptions?: AppOptions): Promise { if (appOptions && appOptions.cssFile) { application.cssFile = appOptions.cssFile; } - application.start({ - create: (): Page => { - let page = new Page(); - if (appOptions) { - page.actionBarHidden = appOptions.startPageActionBarHidden; - } - let onLoadedHandler = function(args) { - page.off('loaded', onLoadedHandler); - //profiling.stop('application-start'); - console.log('Page loaded'); - - //profiling.start('ng-bootstrap'); - console.log('BOOTSTRAPPING...'); - bootstrap(appComponentType, customProviders).then((appRef) => { - //profiling.stop('ng-bootstrap'); - console.log('ANGULAR BOOTSTRAP DONE.'); - }, (err) => { - console.log('ERROR BOOTSTRAPPING ANGULAR'); - let errorMessage = err.message + "\n\n" + err.stack; - console.log(errorMessage); - - let view = new TextView(); - view.text = errorMessage; - page.content = view; - }); + return new Promise((resolve, reject) => { + application.start({ + create: (): Page => { + let page = new Page(); + if (appOptions) { + page.actionBarHidden = appOptions.startPageActionBarHidden; + } + + let onLoadedHandler = function(args) { + page.off('loaded', onLoadedHandler); + //profiling.stop('application-start'); + console.log('Page loaded'); + + //profiling.start('ng-bootstrap'); + console.log('BOOTSTRAPPING...'); + bootstrap(appComponentType, customProviders).then((appRef) => { + //profiling.stop('ng-bootstrap'); + console.log('ANGULAR BOOTSTRAP DONE.'); + resolve(appRef); + }, (err) => { + console.log('ERROR BOOTSTRAPPING ANGULAR'); + let errorMessage = err.message + "\n\n" + err.stack; + console.log(errorMessage); + + let view = new TextView(); + view.text = errorMessage; + page.content = view; + reject(err); + }); + } + + page.on('loaded', onLoadedHandler); + + return page; } - - page.on('loaded', onLoadedHandler); - - return page; - } - }); + }); + }) }