Во-первых, вы должны использовать операторы lettable в функции pipe.
То, что вы пытаетесь сделать, это:
- Сделайте один вызов и получите множество проблем;
- Сделайте отдельный звонок для каждого вопроса;
- Получить результаты
Так что-то вроде:
pipeData.pipe(
// when pipeData emits, subscribe to the following and cancel the previous subscription if there was one:
switchMap(data => of(data.issues))),
// now you get array of issues, so concatAll and get a stream of it:
concatAll(),
// now to call another HTTP call for every emit, use concatMap:
concatMap(issue => jira.search.search({
jql: `team = 41 and "Parent Link" = ${issue.key}`
})).subscribe(results => {
console.log(results)
})
Обратите внимание, что я не обернул jira.search.search
с from
, так как вы также можете передавать обещания в concatMap
, и вы также можете передать второй параметр - resultSelector , чтобы выбрать только некоторые из свойства, если необходимо:
concatMap(issue => jira.search.search({
jql: `team = 41 and "Parent Link" = ${issue.key}`),
result => result.prop1
)