我正在编写一个返回结果或错误的方法。
myMethod.methodName = (param1, param2, param3, error, callback) => {
try {
myDB.findOne({ param1: value}, function (err, result) {
if (err) {
throw(err);
}
if (result) {
callback(result);
});
} catch (e) {
error(e);
}
};
通过调用函数,我将其调用如下:
myExport.data.methodName(param1, param2, param3, (err, result) => {
if (err) {
console.log("Result error:", err);
}
if (result) {
console.log('result : ', result);
}
});
这里我遇到一个错误:' TypeError:回调不是函数
如何实现返回错误或结果的方法调用以及如何处理它?</ p>
答案 0 :(得分:0)
methodName()
需要5个参数,第5个是回调。在调用方法时,您将回调作为第4个参数传递,因此在methodName()
内部回调实际上是null。因此错误。
您的来电者是正确的。像这样改变你的方法定义:
myMethod.methodName = (param1, param2, param3, callback) => {
try {
myDB.findOne({ param1: value}, function (err, result) {
if (err) {
return callback(err);
}
return callback(null, result);
//rest of the code as-is
...