Merge the multiple observables responses into a single array
Use mergeMap on the call to getDevices, then mergeAll to flatten the results, and toArray to convert back to an array:
getCount().pipe(
  mergeMap(count =&gt; range(0, Math.ceil(count / pageSize))),
  mergeMap(offset =&gt; getDevices(offset, pageSize)),
  mergeAll(),
  toArray()
).subscribe(res =&gt; {
  console.log(JSON.stringify(res));
});

See here: https://stackblitz.com/edit/so-rxjs-merge-results?file=index.ts