Yes, you should only use `then` if you *need* promise that is a result of `then`, otherwise use `end` or `aside`.
It's important cause of error handling, `then` while extending chain intercepts any errors that may occur in callback, If you don't handle them, then they're silent which is dangerours, e.g.:
promise.then(function (result) {
throw new Error('Error');
});
Error is silenced and becomes a value of promise returned by `then`, if you leave it like then, you'll never know about it. To expose it you should run `end` on returned promise:
promise.then(function (result) {
throw new Error('Error');
}).end();
Ok, error thrown, but, still it's much better to use `end` right away, instead of `then` and `end`:
promise.end(function (result) {
throw new Error('Error');
});
Error thrown. Going that way you don't create promises you don't need and you're assured that all unhandled errors are exposed, which is very important.