Promise code lighter; errors thrown are shown.

The error not shown root cause was bare `return` in last promise,
now there is `resolve` before `return`