как angular 6 обрабатывает одновременно разные звонки? - PullRequest
0 голосов
/ 10 октября 2018

Как angular 6 обрабатывает вызовы одновременно?Скажем, я отображаю два числа на одной странице, возвращаемые двумя разными вызовами веб-API (подписки на Observables).

Один из моих вызовов с этой страницы задерживается, как я могу определить, заблокирован ли ондругой вызов (скорее всего, причина, я думаю), это можно предотвратить и как?

Это ожидаемое поведение, когда два или несколько вызовов происходят одновременно, angular не обрабатывает их параллельно?(я не использую forkJoin, у меня есть две отдельные подписки на две разные Observables)

Если один из результатов задерживается (служба отнимает много времени), ожидается ли задержка и второго?

1 Ответ

0 голосов
/ 10 октября 2018

Angular не обрабатывает несколько вызовов, вы делаете.

HTTP-вызовы выполняются через ReactiveXJS, библиотеку, которая предоставляет Observables.

Чтобы определить свою стратегию загрузки, вы будете использовать операторов.

Например, наиболее распространенными являются

Слияние : будут отображаться значения в виде массива независимо от порядка

callOne().pipe(merge(value => callTwo()).subscribe(value => console.log(value));

concat : будет ждать окончания первого

concat(callOne(), callTwo()).subscribe(value => console.log(value));

mergeMap : будет подписываться на второй вызов EveryTime, значение которого будет получено первым вызовом

callOne().pipe(mergeMap(valueOne => callTwo())).subscribe(valueTwo => console.log(valueTwo));

switchMap : будет подписываться на второй вызов EveryTime, когда первый вызов получает значение, но отменяет предыдущую подписку на второй вызов

callOne().pipe(switchMap(valueOne => callTwo())).subscribe(valueTwo => console.log(valueTwo));

Есть многооператоров, поэтому я не буду охватывать их всех, но на этой странице есть их , поэтому не стесняйтесь проверять их.

...