我在nodejs中有两个类函数,我想要一个接一个地同步调用它们。
var questionData = questionModelObj.getQuestionbyId(req.params.id);
var answerData = answerModelObj.getAnsByQuesId(req.params.id);
这里questionModelObj需要时间来执行,它调用answerModelObj而不完成questionModelObj。结果answerData覆盖了questionData。
请建议如何逐个调用这两个函数(同步)并解释。
答案 0 :(得分:1)
一个选项是执行第二个函数作为第一个函数的回调。这是Javascript的标准。
// Declare variable to hold response
var answerData;
var questionData = questionModelObj.getQuestionbyId(req.params.id, function() {
// This is the callback function
answerData = answerModelObj.getAnsByQuesId(req.params.id);
}
getQuestionbyId
的函数签名需要接受2个参数,第二个是稍后调用的函数:
questionModelObj.getQuestionbyId = function(id, callback) {
// Do things with the id
callback();
}
在 getQuestionbyId
完成后,回调函数被称为。