我有一个用MySQL,async.waterfall用NodeJs编写的项目
我还实现了async.waterfall以避免我最近遇到的有关“回调不是函数”的问题
但是问题仍然存在。
这是我的异步瀑布
async.waterfall([
function (callback) {
hold.getEntry(function(data){
var ref = data.ref;
id = data.id;
var message = data.mess;
json = JSON.parse(message);
return callback(null, {'ref':ref, 'id':id, 'json':json});
});
},
function (dataa, callback) {
if(dataa.ref === null){
callback(null);
}else{
hold.checkPositionCandidate(dataa.ref, dataa.id, dataa.json, function(dataaa){
return callback(null, dataaa);
});
}
},
function(anoData, callback) {
console.log(anoData);
if(anoData === true){
//the err is here
hold.getVoterCount(id, json, function(votercount){
if(votercount == 0){
} else {
console.log('last function');
}
});
} else {
}
}
], function (err, results) {
// When finished execute this
});
这是我的getVotercount函数
function getVoterCount (id, callback){
pool.getConnection(function(err, con){
con.query("select total_voters as tv from pollwatcher_view where party_id = ?", [id], function(err, rows){
setTimeout(function(){
//this callback is not a function
callback(null, {'count':rows[0].tv});
console.log(rows);
}, 2000);
});
});
}
我非常接近完成我的项目,但是那使我感到沮丧。请有人帮我。
最佳答案
你好像在打电话
hold.getVoterCount(id, json, function(votercount){
if(votercount == 0){
} else {
console.log('last function');
}
});
但是您的getVoterCount函数仅使用2个预期参数定义。我建议尝试仅传递2个参数:
hold.getVoterCount(id, function(votercount){
if(votercount == 0){
} else {
console.log('last function');
}
});
关于javascript - “回调不是功能” Node.Js,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35762125/