No quiero hacer cheques como if (!isPresent) luego haga esto ...
¿Hay alguna forma de pasar por alto todo el entonces cuando mi trabajo esté completo?
var isPresent=false; myPromise .then((employee) => { if (employee) { // throw 'employee already exist'; isPresent = true; return res.data(mapper.toFullModel(employee)); } return model; }); .then(model => { if (!isPresent) { return new db.employee(model).save(); } }) .then(employee => { if (!isPresent) { employee.token = auth.getToken(employee); return employee.save(); } }) .then(employee => { if (!isPresent) { res.data(mapper.toFullModel(employee)); } }) .catch(err => { res.failure(err); });Puede reescribir su cadena de promesas para que la segunda parte quede anidada:
myPromise.then(employee => { if (employee) { return res.data(mapper.toFullModel(employee)); } return new db.employee(model).save().then(employee => { employee.token = auth.getToken(employee); return employee.save(); }).then(employee => { return res.data(mapper.toFullModel(employee)); }); }).catch(err => { res.failure(err); });