如何使函数等待其他函数的响应?

时间:2017-10-28 03:09:23

标签: javascript rest asynchronous localhost

以下是我的功能的代码段:

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上的响应 是空的。

如何处理这种异步性质。

3 个答案:

答案 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中的回调链接你的函数调用。