From b64d446db71bdb91aa5c75ef0e57223b54029d0e Mon Sep 17 00:00:00 2001 From: carand Date: Wed, 2 Mar 2016 15:48:23 +0100 Subject: [PATCH] fixed a race condition when multiple promises resolve out of order --- src/route-segment.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/route-segment.js b/src/route-segment.js index d68c01c..ccd3bde 100644 --- a/src/route-segment.js +++ b/src/route-segment.js @@ -566,12 +566,15 @@ mod.provider( '$routeSegment', return response.data; }); } + + // Store current route params to test whether they're still relevant when our promises resolve + var storedParams = $routeSegment.$routeParams; return $q.all(locals).then( function(resolvedLocals) { - if(resolvingSemaphoreChain[index] != name) + if(!angular.equals(storedParams, $routeSegment.$routeParams) || resolvingSemaphoreChain[index] != name) return $q.reject(); /**