尝试创建函数isNameInDbId
以查看名称是否在mongoDB的列表中。我想我(可能?)需要一个闭包,但是我无法让它工作,它目前出错了。如果我没有使用闭包,函数回调不知道变量name
,或者我可以用不同的方式做到这一点。我尝试了几种方法。
代码:
var name = "john";
var dbID = 123123123;
isNameInDbId(name, dbID, function (success) {
if(success) {
// log("[INFO] name is in list");
return;
}
});
功能:
function isNameInDbId(name, dbID, callback) {
user_collection.findOne({_id : dbID}, (function(err, doc) {
var names = [];
var success = false;
if(doc) {
names = doc.names;
if(names.indexOf(name))
success = true;
}
callback(success);
})(name);
}
答案 0 :(得分:0)
正如Bergi所说,(name)
看起来不对。
function isNameInDbId(name, dbID, callback) {
user_collection.findOne({_id : dbID}, (function(err, doc) {
var names = [];
var success = false;
if(doc) {
names = doc.names;
if(names.indexOf(name))
success = true;
}
callback(success);
});
}
答案 1 :(得分:0)
不幸的是一个深夜,我a
与b
和name
错误的方式,这引发了一个不寻常的错误,说indexOf
未被识别 - 所以我想我可能需要关闭。
移除闭合并转向function isNameInDbId(name, dbID, callback) {
user_collection.findOne({_id : dbID}, function(err, doc) {
var names = [];
var success = false;
if(doc) {
names = doc.names;
if(name.indexOf(names))
success = true;
}
callback(success);
});
}
会得到正确的代码,如下所示:
@IBAction func switchActivated(sender: AnyObject) {
if switch.on {
gameSearchLabel.text = gameListText
}
}