Angular 如何循环。订阅可观察的

Angular 如何循环。订阅可观察的,angular,typescript,rxjs,Angular,Typescript,Rxjs,我目前正在尝试创建一个循环函数,通过使用.subscribe,每次我都会得到一个数组对象,以便以后可以将数据推送到另一个数组中。循环可以工作,但问题是结果不是我想要的,因为.subscribe部分正在打印第一个数组,而对于其余部分,它给我空数组,而它假设打印20倍相同的数组。我目前开始尝试angular,就我对其他语言的了解而言,我认为先打印“Test”x20,然后再进入订阅和打印,效果并不好 功能: testingFunction() { let i: number = 0; w

我目前正在尝试创建一个循环函数,通过使用.subscribe,每次我都会得到一个数组对象,以便以后可以将数据推送到另一个数组中。循环可以工作,但问题是结果不是我想要的,因为.subscribe部分正在打印第一个数组,而对于其余部分,它给我空数组,而它假设打印20倍相同的数组。我目前开始尝试angular,就我对其他语言的了解而言,我认为先打印“Test”x20,然后再进入订阅和打印,效果并不好

功能:

testingFunction()
{
   let i: number = 0;

   while(i < 20){

   console.log("Test");

   this.testService.getAll().subscribe((object: any[]) => {
      console.log(object);
   })

    i++;
  }
}
testingFunction()
{
设i:number=0;
而(i<20){
控制台日志(“测试”);
this.testService.getAll().subscribe((对象:any[])=>{
console.log(对象);
})
i++;
}
}

因为您使用的是Angular,所以可以使用RxJS操作符来处理此场景。操作员将允许您在返回所有观察值之前等待while循环操作完成

以下是如何使用操作员:

testingFunction() {
   let i: number = 0;
   const observablesList = []; 

   while(i < 20){
     observablesList.push(this.testService.getAll());
     i++;
   }
   forkJoin(observablesList).subscribe((response) => {
     console.log(response);
   });
}
testingFunction(){
设i:number=0;
常量observesList=[];
而(i<20){
push(this.testService.getAll());
i++;
}
forkJoin(observesList).subscribe((响应)=>{
控制台日志(响应);
});
}

因为您使用的是Angular,所以可以使用RxJS操作符来处理此场景。操作员将允许您在返回所有观察值之前等待while循环操作完成

以下是如何使用操作员:

testingFunction() {
   let i: number = 0;
   const observablesList = []; 

   while(i < 20){
     observablesList.push(this.testService.getAll());
     i++;
   }
   forkJoin(observablesList).subscribe((response) => {
     console.log(response);
   });
}
testingFunction(){
设i:number=0;
常量observesList=[];
而(i<20){
push(this.testService.getAll());
i++;
}
forkJoin(observesList).subscribe((响应)=>{
控制台日志(响应);
});
}

虽然这个答案对数组进行了分组,但我仍然可以看到第一个数组,其他数组也可以null@MexicoBoy在这种情况下,
getAll()
做什么?我猜是您的代码库中的其他部分给了您一个问题。虽然这个答案在对数组进行分组时起到了作用,但我仍然可以看到第一个数组,其他数组也可以null@MexicoBoy在这种情况下,
getAll()
做什么?我猜是代码库中的其他部分给了您一个问题