Promise code lighter; errors thrown are shown.

The error not shown root cause was bare `return` in last promise,
now there is `resolve(true); return`