sammy icon indicating copy to clipboard operation
sammy copied to clipboard

Nested 'then' not working properly. Fixed

Open jah0wl opened this issue 11 years ago • 5 comments

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

jah0wl avatar Jun 07 '13 14:06 jah0wl

Can you please add a test for this?

endor avatar Feb 01 '14 15:02 endor

How do i do it?

jah0wl avatar Feb 01 '14 15:02 jah0wl

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 ruby test/test_server.

endor avatar Feb 01 '14 16:02 endor

As I posted, I made a test and also send a patch to fix it... I don't really understand what you need.

jah0wl avatar Feb 02 '14 00:02 jah0wl

@jah0wl I think he's looking for a code test, essentially what you have written out but in the spec file so that it runs as part of the automated build process.

s7726 avatar May 26 '18 17:05 s7726