【发布时间】:2017-07-25 23:06:00
【问题描述】:
我有一个订阅服务的功能:
selectCar(carNumber) {
this.carService.getCarByNumerator(carNumber)
.subscribe( (car) => {
console.log(carNumber);
//more stuff here
},
(err) => console.log(err)
);
}
我想在 for 循环中调用这个函数,如下所示:
for(let carNumber of carNumbers) {
this.selectCar(carNumber);
}
问题是,有时它可以按我的预期工作,但有时顺序与列表中的不同。
例如清单是:
45
67
89
但是当我查看控制台时,我看到以下内容:
67
89
45
如何强制 for 循环在当前函数调用完成之前不转到下一项?
【问题讨论】:
-
您可以将函数更改为递归函数,这将有所帮助,但成本会增加。
-
正在对 API/后端进行异步调用,您不能保证数据将按特定顺序返回。您可以在附加处理/显示之前简单地对结果进行排序/排序吗?否则可以考虑combineAll或Subject等运算符
标签: angular