我正在为用户请求开发许多微服务。任何库都会调用许多其他服务,如计费,推荐 然后做检查和回复。
例如:
打电话给api
get(request):
// call two services async
billing = billingService(user_id) //service end point 1
recommendation = recommendation_service(user_id) //service end point 2
// we will have results from those two services
//check conditions response to user
if billing == OK:
response (recommendation) // response
答案 0 :(得分:1)
您可以使用承诺来解决上述问题。
billing = billingService(user_id).then(results => {
//Here in the results variable the output of billing service method will be stored if billing service method returns a promise.
recommendation = recommendation_service(user_id)})
Promise是在javascript中解决异步调用的最有效方法。
如果您特别搜索任何库,可以使用node.js的“q”库
答案 1 :(得分:0)
您可以尝试使用ES7的async / await。它写起来会更容易,而且你的代码看起来也会更清晰。
一旦你开始工作,你的代码就会像:
const billing = await billingService(user_id)
const recommendation = await recommendation_service(user_id)
我建议学习Promises(毕竟他们已成功地将人们从回调地狱中拯救出来)以取消asynctify async / await(因为你的billingService和recommendation_service最终需要异步函数才能等待)
希望这有帮助!