这可能是一个非常简单的问题,但我不确定最常用的方法是什么。
我有一个进行API调用的路由,然后返回结果。问题是路由不等待API调用完成,而只是立即发送响应。
似乎我需要构造它以便在回调中触发响应,但我不确定在这种情况下最佳做法是什么。
app.get('/', function(req, res){
var info = timesheet.getData(); // This function makes API call and
// waits for response, then returns
// data in callback function
res.send(info); // info is undefined since this fires
// before the API response is finished
});
谢谢,你们真棒。 约翰
(编辑我的代码以更直接地回答问题)
答案 0 :(得分:1)
timesheet.getData
是否接受回调参数?我想如果它是异步收集数据的话。如果确实如此,那就把你的res.send
放在那里:
app.get('/', function(req, res) {
timesheet.getData(function(info) {
res.send(info);
}
});
如果没有,那么,我不知道;我将删除此回复。