Yes, that is the right order, chained promises execute in order. You
would register then() repeatedly on the initial promise if order
didn't matter.
The English words when vs then indicate opposite order.
"do operation a *when* operation b: indicates operation b comes first.
"do operation a *then* operation b: indicates operation a comes first.
Using "when" for a promise method contradicts English, unless you want
the callback to execute first, which is impossible.
Using when as a static function that acts on the next argument does
make sense in English.
The preference between using a static function vs a promise method and
the extra guarantees that the static function can provide vs the
convenience of a promise method is entirely different discussion (and
we certainly have had it in quite some depth :) ).
Kris