Typescript 我如何确认一个周期内所有观测值的执行?(角度2)?

Typescript 我如何确认一个周期内所有观测值的执行?(角度2)?,typescript,angular,loopback,Typescript,Angular,Loopback,在Angular 2中,我如何确认“可观测”的“n”个数何时完成: ... for (var i = 1; i <= this.quantity; i++) { description = this.prefix.trim() + ' ' + i.toString(); point = new PointModel(description, 'A', this.locationModel.id); this.point.create(<PointMod

在Angular 2中,我如何确认“可观测”的“n”个数何时完成:

  ...
  for (var i = 1; i <= this.quantity; i++) {
    description = this.prefix.trim() + ' ' + i.toString();
    point = new PointModel(description, 'A', this.locationModel.id);
    this.point.create(<PointModel>point)
      .subscribe(
      pointModel => {
        Materialize.toast('Se ha guardado el punto \"' + pointModel.description + '\"', 2000);
      },
      error => {
        Materialize.toast('Se ha generado un error: \"' + error + '\"', 2000);
      }
      );
  }
  ...
。。。
对于(var i=1;i{
Materialize.toast('Se ha guardado el punto\'”+pointModel.description+'\'”,2000年);
},
错误=>{
toast('Se-ha-generado-un-error:\“+error+'\”,2000);
}
);
}
...

谢谢大家!

应该是这样的:

//create and fill points array
var points:PointModel[] = [];
for (var i = 1; i <= this.quantity; i++) {
  description = this.prefix.trim() + ' ' + i.toString();
  points.push(new PointModel(description, 'A', this.locationModel.id));
}

Observable.from(points).flatMap(point=>{this.point.create(<PointModel>point)})
.subscribe(
  pointModel => {
    Materialize.toast('Se ha guardado el punto \"' + pointModel.description + '\"', 2000);
  },
  error => {
    Materialize.toast('Se ha generado un error: \"' + error + '\"', 2000);
  },
  () => {
     Materialize.toast('All points have been created!', 2000);
  }      
  );
//创建和填充点数组
变量点:PointModel[]=[];
for(var i=1;i{this.point.create(point)})
.订阅(
pointModel=>{
Materialize.toast('Se ha guardado el punto\'”+pointModel.description+'\'”,2000年);
},
错误=>{
toast('Se-ha-generado-un-error:\“+error+'\”,2000);
},
() => {
Materialize.toast('所有点都已创建!',2000);
}      
);
我的最终代码是:

  for (var i = 1; i <= this.quantity; i++) {
    description = this.prefix.trim() + ' ' + i.toString();
    points.push(new PointModel(description, 'A', this.locationModel.id));
  }

  Observable.fromArray(points).flatMap( //'fromArray' is deprecated, instead use 'from'
    point => {
      return this.point.create(<PointModel>point); //the return was the key here...
    }
  )
    .subscribe(
    pointModel => {
      Materialize.toast('Se ha guardado el punto \"' + pointModel.description + '\"', 2000);
    },
    error => {
      Materialize.toast('Se ha generado un error: \"' + error + '\"', 2000);
    },
    () => {
      this.loadPointsFromModelId(this.pointModel.id);
    }
    );
(变量i=1;i)的
{
返回this.point.create(point);//返回的是这里的键。。。
}
)
.订阅(
pointModel=>{
Materialize.toast('Se ha guardado el punto\'”+pointModel.description+'\'”,2000年);
},
错误=>{
toast('Se-ha-generado-un-error:\“+error+'\”,2000);
},
() => {
this.loadPointsFromModelId(this.pointModel.id);
}
);