У меня есть блок кода, содержащий, если else и большая часть кода в if и else одинаковы, но из-за одного вызова функции с обратным вызовом я должен иметь совершенно такой же код в оба блока if и else. Я знаю, что для этой цели может быть создана функция, но мне потребуется передать слишком много параметров. Вот код блок:Как избежать дублирования блоков кода в node.js
if (results[0].register_type == 'D') {
sessionData.register_type = results[0].register_type;
UserModel.updategcm_id(req.body, function (err, result) {
UserSessionModel.createSessionToken(sessionData, function (err, result, token) {
if (err) {
res.status(400).send(self.createResponse({}, {
success: false,
message: err.message
}));
return false;
}
res.status(200).send(self.createResponse({
token: token,
userid: results[0].id
}, {
success: true,
message: "User has logged in successfully"
}));
console.log("User has logged in successfully...\n");
});
});
} else {
UserSessionModel.createSessionToken(sessionData, function (err, result, token) {
if (err) {
res.status(400).send(self.createResponse({}, {
success: false,
message: err.message
}));
return false;
}
res.status(200).send(self.createResponse({
token: token,
userid: results[0].id
}, {
success: true,
message: "User has logged in successfully"
}));
console.log("User has logged in successfully...\n");
});
}
Используйте функцию с параметром. – Bergi
Почему бы вам просто не создать функцию и передать ей ошибки, результаты и токен? – Seonixx
@Seonixx: На самом деле он уже создает эту самую функцию. (дважды). – Bergi