1780800
handler.myTasklist = function(msg,session,next){
var uid = session.uid;
taskDao.myTasklist(uid,function(err,res){
//res为一个数组,这里使用async的concatSeries方法,同步依次执行
async.concatSeries(res,function(task,callback){
var taskinfo;
//这里出现问题,直接跳过了taskDao,直接进入callback(null,data[taskinfo])了,正确的方法该怎样写呢?
taskDao.taskAttribute(task.id,function(err,res){
var attributes = []
for(var j=0;j<res.length;j++){
var attribute = {
title:res[j].title,
attributevalue:res[j].attributevalue
};
attributes.push(attribute);
}
taskinfo = {
title:task.title,
type:task.type,
status:task.status,
attributes:attributes
};
});
//将得到的taskinfo传入回调函数,由于没有同步taskDao.taskAttribute,直接导致这里到taskinfo为空
callback(null,data[taskinfo]);
},function(err,values){
console.log("tasks:"+values);
next(null,{
route: 'onMytasklist',
tasks:values
});
});
});
};
要求就是:for循环里面 先执行taskDao.taskAttribute,取得taskinfo后 再执行下面的callback(null,data[taskinfo]);这个回调
希望不要嫌弃新人技术哈
【已解决,改变一下callback位置即可】
