我正在编写一个调度程序,它返回有关课程的JSON数据。我刚刚在一周前创建了Node.js,所以我不确定我是否正确思考。 我试图找到一种更好的方法来编写这段代码并避免回调地狱。我已经编写了getJSON方法。
/*getJSON(course-name, callback(JSONretrieved)): gets JSON info about name and
takes in a callback to manipulate retrieved JSON data*/
现在我想从课程数组中获取多个课程名称,并检查它们之间的时间冲突。然后,我将所有可行的组合添加到答案数组中。我目前的想法是:
/*courseArray: array of classes to be compared
answers: array of all nonconflicting classes*/
var courseArray = ['MATH-123','CHEM-123']
var answers=[]
getJSON(courseArray[0],function(class1data){
getJSON(courseArray[1],function(class2data){
if(noConflict) answers.push( merge(class1data,class2data))
})
)
})
);
最后,为了访问答案数组,我们从上面包装了整个代码:
function getAnswers(cb){
/*courseArray: array of classes to be compared
answers: array of all nonconflicting classes*/
var courseArray = ['MATH-123','CHEM-123']
var answers=[]
getJSON(courseArray[0],function(class1data){
getJSON(courseArray[1],function(class2data){
/check for time conflicts between class1data and class2 data
if(noConflict(class1data,class2data)) answers.push( merge(class1data,class2data))
})
)
})
);
cb(answers)
}
我们调用函数
getAnswers(function(ans){
//do processing of answers
console.log(ans)
})
我的主要问题是,是否有任何方法可以使这些代码更短,更易读或更少回调。