我该如何写,以便lfmuser保留UserModel.find()
调用的函数中所做的更改?如果可以避免的话,我真的宁愿不必将非常大的代码段移动到每个块中。
var np_handler = function (act) {
var lfmuser = '';
if (act.params.length === 0) {
UserModel.find({ nick: act.nick }, function (err, data) {
if (!data) {
lfmuser = act.nick;
} else {
lfmuser = data.lastfm;
}
});
} else {
UserModel.find({ nick: act.params[0] }, function (err, data) {
if (!data) {
lfmuser = act.params[0];
} else {
lfmuser = data.lastfm;
}
});
}
};
最终在这种情况下没关系,我只是将其余代码(我在使用lfmuser的地方)移到了它自己的函数
np(lfm, act){ }
中,并在调用它时传递了正确的值。异步可能会很痛苦:/ 最佳答案
最简单的解决方案是将其移至np_handler
函数之外。注意,随后对该函数的调用将覆盖其值。
关于javascript - 更改函数中的变量并保留为JavaScript?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9662169/