>Как console.log('ok'); дожидается когда отработает
так и не дожидается. сначала ok, потом yep
>Как в .then() сам резолвится setTimeout()?
никак он не резолвится :)
всё проще чем кажется. пока в then не будет возвращён промис, будет выполняться следующий then.
если ты там, где console.log('yep'), будешь возвращать промис и резолвить его по таймауту, то и цепочка будет выполняться у тебя по порядку.
возможно, что ты используешь какую то кривую реализацию промисов. попробуй нативную в ноде или хроме, или посмотри, как оно сделано в vow или bluebird