nodejs调用两个类函数同步

时间:2017-07-06 15:21:14

标签: node.js callback synchronous

我在nodejs中有两个类函数,我想要一个接一个地同步调用它们。

var questionData = questionModelObj.getQuestionbyId(req.params.id);
var answerData = answerModelObj.getAnsByQuesId(req.params.id);

这里questionModelObj需要时间来执行,它调用answerModelObj而不完成questionModelObj。结果answerData覆盖了questionData。

请建议如何逐个调用这两个函数(同步)并解释。

1 个答案:

答案 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完成后,回调函数被称为