【发布时间】:2016-07-01 09:55:29
【问题描述】:
我有一个包含 if else 的代码块,并且 if 和 else 中的大部分代码是相同的,但是由于一个带有回调的函数调用,我必须在 if 和 else 块中使用完全相同的代码。我知道可以为此目的创建一个函数,但它需要我传递太多参数。这是代码块:
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");
});
}
【问题讨论】:
-
使用带参数的函数。
-
你为什么不直接创建一个函数并将err、results和token传递给它呢?
-
@Seonixx:实际上他已经在创造那个功能了。 (两次)。
-
@Bergi 啊是的 - 我的错。
标签: javascript node.js express callback