Я хочу произвести следующие шаги в Angular:
- Получить список баз данных и поместить его в наблюдаемый массив
- Проходить через наблюдаемые и для каждого элемента сделать еще одинhttp get request (проверьте, существует ли определенная таблица)
- Работа со значениями впоследствии позволяет разделить массив на несколько массивов в зависимости от результатов второго запроса get
Дляинформация здесь - это данные, которые я получаю при посещении URL (JSON):
[{"name":"facturation_test"},{"name":"facturation_test2"},{"name":"postgres"},{"name":"source_cadiere"},{"name":"source_dangu"},{"name":"template0"},{"name":"template1"},{"name":"template_urbanisme_7_12"},{"name":"template_urbanisme_7_13"},{"name":"test"},{"name":"urbanisme_asvjl"},{"name":"urbanisme_cadiere"}]
Вот что я получаю из своего кода до этого момента:
Мой метод обслуживания (база данных-service.ts)
getDatabases():Observable<IDatabase[]>{
return this.http.get<IDatabase[]>('http://localhost:3000/databases');
}
database.component.ts
//My variable stocking the info (type interface:IDatabase[])
public databases:IDatabase[];
Внутри моего метода onInit после импорта службы
this._datebaseServiceService.getDatabases()
.subscribe(
data=>{
this.databases= data;
console.log(this.databases);
});
Внутри моей второй таблицы службcountService.ts
getTableCount(databasename, tableName):Observable<ICount[]>{
return this.http.get<ICount[]>('http://localhost:3000/check-table?
database='+databasename+'&tablename='+tableName);
}
Я пробовал несколько подходов из .flatMap
и .map
, но я просто не мог понять синтаксис правильно.Я также попытался просто перебрать переменную this.database
, но если я это сделаю, у меня будут вложенные подписки, так как я не знаю, как это вызвать иначе.Даже после нескольких лекций с объяснениями этих двух команд у меня все еще есть некоторые проблемы с flatMap.
Насколько я понял следующее:
.map
=> идетпо каждому элементу наблюдаемого и (я думаю), что мне нужно здесь
.flatMap
=>, кажется, используется для вложенного запроса, но я не понимаю, как он идетпо каждому элементу?
Я явно что-то упускаю, поскольку получение самих данных (списка таблиц) не было проблемой.