以下是我的功能的代码段:
app.get('/r/somepath',function(req,res){
var s=req.params.a;
var d=req.params.b;
var date=req.params.c;
var op=func(a,b,c);
return res.send(op);
});
现在// func是一个很长的函数,因为它对resful服务器进行3次GET调用,然后编译响应并发送回变量op。
但是到时候反应就来了;在那之前只有“return res.send(op);”执行localhost:8080/r/somepath
上的响应
是空的。
如何处理这种异步性质。
答案 0 :(得分:0)
使用承诺:
var p1 = new Promise( function (resolve, reject) { ... })
等待其他承诺解决:
Promise.all([p1,p2,p3]).then(function (results) { ... handle results array here ...})
答案 1 :(得分:0)
如果您使用的是ES6,则可以使用async await。
答案 2 :(得分:0)
最好的方法是使用NodeJS中的回调链接你的函数调用。