电话:
Query.GetDepartments(AcademicYears, function (result) {
console.log(result)
})
功能:
exports.GetDepartments = function (callback, AcademicYears) {
CountAcademicYears = Object.keys(AcademicYears).length;
switch (CountAcademicYears) {
case 1:
AcademicYear1 = AcademicYears[0].Year;
AcademicYear1 = String(AcademicYear1);
query = "SELECT [p_departement], [depcode], [departement], [schooljaar] FROM [SA_Departement] WHERE schooljaar='" + AcademicYear1 + "'";
console.log(query);
(async function () {
try {
let result = await globalConnectionInfordat.request()
.query(query);
callback(result.recordset);
} catch (err) {
console.log(err);
}
})();
break;
..........
}
}
这给了我这个错误:
'Incorrect syntax near the keyword \'function\'.',
出于某种原因,字符串不能正常读出(我认为)?有什么想法吗?
我只需要知道如何将参数传递给函数?
修改
由于某种原因,我不得不移动这些词:函数(Academicyears,callback)正在运行。
感谢您的帮助!
答案 0 :(得分:1)
callback
是一个局部变量。它只存在于function (query, callback) { /* ... */ }
内。
您无法在该函数外部使用它(即在您传递给ExecuteSql
的匿名函数中)。
您需要创建该函数的另一个引用,然后使用该名称:
this.ExecuteSql("SELECT ...", function a_named_function (result) {
a_named_function(result);
});
...但递归调用该函数毫无意义。
答案 1 :(得分:0)
根据“ExecuteSql”的定义,它接受2个参数。 1.字符串2.功能。
所以当你打电话给那个模块时。
它应该是:
this.ExecuteSql("your string", function (result) {
console.log(result);
});
希望这对你有所帮助。