我正在为函数调用获取部分输出。谁能告诉我我在做什么错
MongoDB中JSON格式的数据库中的数据
功能码
async function isTeamNameExists(department, teamID) {
var store = await new Promise(async (resolve, reject) => {
//database read function
db.readCollection(collection_name, (status, data) => {
if (status) {
var teamname = new SB.ListofNames();
teamname.listofboards = data;
var send = teamname;
console.log("send----->", send);
//checking for teamname exists?
for (var boardindex = 0; boardindex < send.listofboards.length; boardindex++) {
var tn = send.listofboards[boardindex];
if (tn.department == department && tn.teamId == teamId) {
resolve(tn);
} else {
resolve(null);
}
}
reject(null);
}
});
});
console.log("store---->", store); // the function return value =store
return (store);
//resolve(store); does not work
}
函数调用1
var output1 = isTeamNameExists(D1,11);
结果-> {department:D1,teamId:11} //存在->返回teamId = 11的特定json数据
函数调用2
var output2= isTeamNameExists(D2,22);
结果-> null //它不应返回null,但应返回{department:D2,teamId:22}
函数调用3
var output3= isTeamNameExists(D78b,22000211);
Result-> null //它应该返回null。正确的输出
>因此,我得到了部分输出。你能告诉我我做错了什么吗?我是javascript新手,每天都在学习一些东西。
for (var boardindex = 0; boardindex < send.listofboards.length; boardindex++)
由于这种else
情况,您的函数正在解决循环中第一次运行完成的时刻。
您希望循环遍历所有项目,reject
如果找不到条目(您做得正确)。
删除下面的部分,你会很好。
} else {
resolve(null);
//resolve(store); does not work
将无法正常工作,因为isTeamNameExists
功能不是承诺。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句