Dependent callbacks are not waited and executed in order

I wanted to read up on if chained callbacks are run in any nice orderly fashion. I found this post
where it states under “Dash App With Chained Callbacks” that:

The final callback displays the selected value of each component. If you change the value of the countries RadioItems component, Dash will wait until the value of the cities component is updated before calling the final callback. This prevents your callbacks from being called with inconsistent state like with "America" and "Montréal" .

But when changing between America and Canada in the example on this page I can see that it first updates the text with the country and then the city. So when changing from America to Canada I can see “New York City is a city in Canada” very briefly. I also ran this example locally with debugging and verified that the third callback is run twice whenever I change the country.

Is this a bug, or is the documentation old? Or have I just missunderstood the documentation when I expect that the text “New York City is a city in Canada” should not be possible to get?

Reported the bug on github instead (where it belongs, sorry):

1 Like