真的需要帮助。我一直在尝试不同的方法,但是没有用。
function1() {
return this.apiService.get().pipe(map(data => {
return this.function2();
}));
}
function2() {
const urls = [];
for (let i = 1; i <= 5; i++) {
urls.push(
this.apiService
.get('/users/?page=' + i)
.pipe(map(data => data))
);
}
forkJoin(...urls).subscribe(data => {
data.forEach(element => {
results = results.concat(element.results);
});
return results;
})
}
this.someService.function1().subscribe(data => {
console.log(data);
})
所以基本上,我想打印出我在function1()中订阅的数据。但是function1()的结果依赖于另一个subscription()的function2()。
我确实知道为什么,但只是不知道如何解决。当我运行脚本时,我总是变得不确定,原因是因为function1()无法等待function2()返回结果。
我被困在这里。谢谢,
答案:我发现我不应该将function2中的结果作为数组返回。
function2() {
const urls = [];
for (let i = 1; i <= 5; i++) {
urls.push(
this.apiService
.get('/users/?page=' + i)
.pipe(map(data => data))
);
}
return forkJoin(urls);
然后基于funtion2的输出,我将在function1中完成剩下的工作,即concat()。...