В настоящее время я разрабатываю службу syn c с Angular. Здесь я делаю запрос к базе данных и получаю обратно массив URL-адресов. Теперь я хочу последовательно обработать каждый URL. Вот мой код:
return this.http.get<any[]>(url + '/recovery').pipe(
map((response: any) => {
return from(response).pipe(
concatMap((item: any) => {
switch (item.method) {
case 'POST':
return this.post(item.url, item.data);
case 'PUT':
return this.update(item.url, item.data);
case 'DELETE':
return this.delete(item.url);
}
})
);
})
Возвращенный массив начального HTTP-запроса выглядит примерно так:
[
{method: 'POST', url: 'xxx.com/aaa', data: {...}},
{method: 'POST', url: 'xxx.com/bbb', data: {...}},
{method: 'PUT', url: 'xxx.com/ccc'},
]
На следующем шаге я оформляю подписку, например:
this.restService.syncRecovery().subscribe(response => {
console.log('SYNC DONE', response);
});
Подписка работает, но «внутренние» HTTP-запросы (concatMap) не обрабатываются. Я ожидаю, что это будет простая проблема, но я не могу ее найти и надеюсь, что кто-нибудь здесь может оказать некоторую поддержку, пожалуйста.
Thx!