【发布时间】:2015-08-15 05:56:35
【问题描述】:
我有一个快速应用程序,我在其中通过 API 调用调用函数。 我遇到的问题是从 API 调用中获取响应 函数并返回主路由器。我知道这可能必须做 代码被异步处理,但我不知道 解决问题的方法。
/* GET funnel page. */
router.get('/funnel', function(req, res, next) {
var score = 'test2';
score = GetQuery('Bars');
res.render('funnel', {title: score});
});
function GetQuery(query) {
var test = 'test3';
factual.get('/t/places-us', {q:query,limit: 1, filters:{"$and":[{"region":{"$eq":"NY"}},{"locality":"pittsford"}]}}, function (error, res) {
test = res.data[0].email;
});
return test;
}
【问题讨论】:
-
异步,异步,异步。这是人们加快 node.js 开发速度的常见问题之一。
factual.get()看起来像是一个异步函数。这意味着它会通过稍后调用回调来返回其值。因此GetQuery()在test的值被设置之前就已经返回了。因此,您不能从GetQuery()返回值。您必须以异步兼容的方式返回结果,这意味着使用承诺或回调。
标签: javascript node.js api express