Using require breaks router...?


#21

It works for me when bluebird is removed from aurelia.json prepend section. But that breaks IE11 if it is important for you. for me it is :frowning:


#22

@magnusdanielson If you dont need to use Bluebird’s promise cancellation feature, adding the following lines to your index html will make it work:

<script>Promise = undefined</script>
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.js"></script> 

I think it boils down to the following difference:

Native

Bluebird

Notice how the 2 “micro task resolved” is logged after “promise then chain resolved” in bluebird, which could cause this line https://github.com/aurelia/router/blob/master/src/router.js#L204 to run before the micro task queue that bindings (read Repeat) uses to process changes / model / render UI


That said, it still doesn’t explain why it worked before, and now it stops working.


#23

The bug only affects end user when both issue(1) and issue(2) are present.

It worked before because issue(2) doesn’t exist before aurelia-templating-resources 1.7.0.

  • issue 2 is absent

It worked on gistrun because the rjs-bundle doesn’t bundle bluebird.

  • issue 1 is absent

This means the issue (1) (timing bug with bluebird) has been here for a long long time but didn’t manifest itself, like a recessive gene.


#24

So cool to watch you two get to the root of it (-: