Не удается отследить все http-запросы в асинхронном режиме параллельно с zipkins в Node API - PullRequest
0 голосов
/ 07 марта 2019

Я новичок в узле js и пытался интегрировать zipkins с моим APi узла, используя пакет appmetrics-zipkin npm.Zipkin работает нормально, за исключением случаев, когда в асинхронном параллельном методе есть несколько http-вызовов, он выдает трассировку только первого http-вызова, который был завершен ... Мне нужна трассировка для всех API-вызовов в асинхронной параллельной ...... Пожалуйста, помогите

1 Ответ

0 голосов
/ 07 марта 2019

Ну, не видя никакого кода, я мог бы дать вам только пример того, как вы должны этого достичь.Так что вызов http, например, если вы используете node-fetch или axios, вернет обещание.Для параллельного ожидания обещаний вы можете сделать следующее:

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,
    ]);
}

Обратите внимание, что здесь я использую API выборки, предоставляемый в узле пакетом node-fetch.Fetch возвращает Promise.Затем я вызываю Promise.all(promises), где promises - массив Promise.Затем вы можете делать с этими 3 ответами все, что захотите, и ваши запросы были сделаны параллельно.

Надеюсь, это поможет, удачи!

...