-
Notifications
You must be signed in to change notification settings - Fork 382
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nested 'then' not working properly. Fixed #197
base: master
Are you sure you want to change the base?
Conversation
In previous version nested then didn't work at expected: context.load("templates/home.template" ).then(function(){ context.log("1"); this.load("templates/home.template" ).then(function(){ context.log("2"); this.load("templates/home.template" ).then(function(){ context.log("3"); this.load("templates/home.template" ).then(function(){ context.log("3a"); }).then(function(){ context.log("3b"); }); }); }).then(function(){ context.log("4"); }); }).then(function(){ context.log("5"); }).then(function(){ context.log("6"); this.load("templates/home.template" ).then(function(){ context.log("7"); this.load("templates/home.template" ).then(function(){ context.log("8"); }); }).then(function(){ context.log("9"); }); }); returns: [Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 1 sammy.js:97 [Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 5 sammy.js:97 [Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 6 sammy.js:97 [Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 2 sammy.js:97 [Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 4 sammy.js:97 [Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 7 sammy.js:97 [Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 9 sammy.js:97 [Fri Jun 07 2013 16:47:39 GMT+0200 (CEST)] 3 sammy.js:97 [Fri Jun 07 2013 16:47:39 GMT+0200 (CEST)] 8 sammy.js:97 [Fri Jun 07 2013 16:47:39 GMT+0200 (CEST)] 3a sammy.js:97 [Fri Jun 07 2013 16:47:39 GMT+0200 (CEST)] 3b sammy.js:97 With the change it outputs what we expect: [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 1 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 2 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 3 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 3a sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 3b sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 4 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 5 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 6 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 7 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 8 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 9 sammy.js:97
@@ -1551,9 +1551,11 @@ $.extend(Sammy.DefaultLocationProxy.prototype , { | |||
} | |||
var context = this; | |||
if (this.waiting) { | |||
this.callbacks.push(callback); | |||
this.callbacks.splice(this.inAThen,0,callback); | |||
this.inAThen++; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here we translate the push() to an splice() at the highest index inside this nested then
Can you please add a test for this? |
How do i do it? |
Look at the other tests. You might push different strings on to an array in the nested thens and then check afterwards that the strings are in the correct order. If the test fails before the change and works after, it's most likely correct (: Probably somewhere in render_context_spec.js. To run the tests, just run |
As I posted, I made a test and also send a patch to fix it... I don't really understand what you need. |
@jah0wl I think he's looking for a code test, essentially what you have written out but in the |
In previous version nested then didn't work at expected:
returns:
[Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 1 sammy.js:97
[Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 5 sammy.js:97
[Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 6 sammy.js:97
[Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 2 sammy.js:97
[Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 4 sammy.js:97
[Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 7 sammy.js:97
[Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 9 sammy.js:97
[Fri Jun 07 2013 16:47:39 GMT+0200 (CEST)] 3 sammy.js:97
[Fri Jun 07 2013 16:47:39 GMT+0200 (CEST)] 8 sammy.js:97
[Fri Jun 07 2013 16:47:39 GMT+0200 (CEST)] 3a sammy.js:97
[Fri Jun 07 2013 16:47:39 GMT+0200 (CEST)] 3b sammy.js:97
With the change it outputs what we expect:
[Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 1 sammy.js:97
[Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 2 sammy.js:97
[Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 3 sammy.js:97
[Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 3a sammy.js:97
[Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 3b sammy.js:97
[Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 4 sammy.js:97
[Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 5 sammy.js:97
[Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 6 sammy.js:97
[Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 7 sammy.js:97
[Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 8 sammy.js:97
[Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 9 sammy.js:97