@@ -312,15 +312,18 @@ export class Transition implements IHookRegistry {
312
312
run ( ) {
313
313
let hookBuilder = this . hookBuilder ( ) ;
314
314
let runSynchronousHooks = TransitionHook . runSynchronousHooks ;
315
+ // TODO: nuke these in favor of chaining off the promise, i.e.,
316
+ // $transitions.onBefore({}, $transition$ => {$transition$.promise.then()}
315
317
const runSuccessHooks = ( ) => runSynchronousHooks ( hookBuilder . getOnSuccessHooks ( ) , { } , true ) ;
316
318
const runErrorHooks = ( $error$ ) => runSynchronousHooks ( hookBuilder . getOnErrorHooks ( ) , { $error$ } , true ) ;
317
319
// Run the success/error hooks *after* the Transition promise is settled.
318
320
this . promise . then ( runSuccessHooks , runErrorHooks ) ;
319
321
320
- let promiseChain = runSynchronousHooks ( hookBuilder . getOnBeforeHooks ( ) ) ;
322
+ let syncResult = runSynchronousHooks ( hookBuilder . getOnBeforeHooks ( ) ) ;
321
323
322
- if ( TransitionHook . isRejection ( promiseChain ) ) {
323
- this . _deferred . reject ( promiseChain ) ;
324
+ if ( TransitionHook . isRejection ( syncResult ) ) {
325
+ let rejectReason = ( < any > syncResult ) . reason ;
326
+ this . _deferred . reject ( rejectReason ) ;
324
327
return this . promise ;
325
328
}
326
329
@@ -351,8 +354,8 @@ export class Transition implements IHookRegistry {
351
354
352
355
trace . traceTransitionStart ( this ) ;
353
356
354
- promiseChain = hookBuilder . asyncHooks ( ) . reduce ( ( _chain , step ) => _chain . then ( step . invokeStep ) , promiseChain ) ;
355
- promiseChain . then ( resolve , reject ) ;
357
+ let chain = hookBuilder . asyncHooks ( ) . reduce ( ( _chain , step ) => _chain . then ( step . invokeStep ) , syncResult ) ;
358
+ chain . then ( resolve , reject ) ;
356
359
357
360
return this . promise ;
358
361
}
0 commit comments