getVerbosePackages(packages: Package[]): void {
let promises = []
packages.forEach((pack) => {
promises.push(this.getVerbosePackage(pack));
})
Promise.all(promises).then((result) => {
console.log(result);
})
}
getVerbosePackage(pack: Package): Promise<any> {
return new Promise((resolve, reject) => {
this.packageService.getPackage(pack.id)
.pipe(takeUntil(this.ngUnsubscribe))
.subscribe((pack: Package) => {
resolve(pack);
}, error => reject(error))
})
}
getVerbosePackages(): Promise<any> {
return new Promise((resolve, reject) => {
this.packages.forEach((pack) => {
this.packageService.getPackage(pack.id)
.pipe(takeUntil(this.ngUnsubscribe))
.subscribe((pack: Package) => {
console.log(pack);
this.verbosePackages.push(pack);
})
})
console.log('END');
resolve(this.verbosePackages);
})
}
но JS я не разобрал на 100%.
Так-то всё работает и я получил то, что мне нужно, сократив количество кода в несколько раз, но меня никак не покидает ощущение, что я пользуюсь инструментом не по его прямому назначение, слишком усложняю или не использую какие-то возможности в силу отсутствия опыта.