无法与Node API中的zipkins异步并行地跟踪所有http请求

时间:2019-03-07 05:40:34

标签: node.js zipkin

我是Node js的新手,并尝试使用appmetrics-zipkin npm软件包将zipkins与我的节点APi集成。 Zipkin可以正常工作,除非在异步并行方法中有多个http调用时,它只能跟踪已完成的第一个http调用...我需要跟踪异步并行中的所有API调用...请帮助< / p>

1 个答案:

答案 0 :(得分:0)

好吧,在没有看到任何代码的情况下,我只能给您一个有关如何实现此目标的示例。因此,http调用(例如,如果您使用node-fetch或axios)将返回promise。要并行等待诺言,您可以执行以下操作:

async function myParallelRequests() {
    const requestOne = fetch(urlOne);
    const requestTwo = fetch(urlTwo);
    const requestThree = fetch(urlThree);
    const [responseOne, responseTwo, responseThree] = await Promise.all([
        requestOne,
        requestTwo,
        requestThree,
    ]);
}

请注意,我在这里使用fetch API,由node-fetch包在node中提供。提取返回Promise。然后,我调用Promise.all(promises),其中promises是一个Promise数组。然后,您可以对3个响应做任何您想做的事情,并且您的请求是并行发出的。

希望这会有所帮助,祝您好运!