я хочу отправить запрос на синхронизацию этого вложенного цикла for в angular 6. все циклы for должны ждать ответа друг друга. Пожалуйста, приведите пример в https://stackblitz.com
protected plateInfo(debug = true) {
for (let i = 0; i < 8; i++) {
for (let k = 0; k < 8; k++) {
if (k % 2 !== 0) {
for (let threshBlock = 21; threshBlock < 31; threshBlock++) {
if (threshBlock % 2 !== 0) {
for (let treshWeight = 5; treshWeight < 19; treshWeight++) {
if (treshWeight % 2 !== 0) {
this.getPLateInfo.getInfoPlate({
qausLast: i,
qausParam: k,
treshBlock: threshBlock,
treshWeight: treshWeight
}).subscribe(_data => {
this.result.push(_data)
_data.input1 = i
_data.input2 = k
})
}
}
}
}
}
}
}
}
Пожалуйста, не добавляйте случайный мусор в свой пост, чтобы обойти ограничения качества SE. Вместо этого добавьте фактические детали. См. также Как спросить



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Попробуйте использовать ожидание/асинхронность
async getResult(): MyCustomObject {
if (typeof this.result === 'undefined')
{
// save result
this.result = await this.service.call()
.toPromise()
.then(resp =>resp as MyCustomObject);//Do you own cast here
}
return this.result;
}
но я использую угловой 6
Да, $q для AngularJS
но как дождаться результата обратного вызова этого вложенного цикла for
Что вам нужно, это
concatMap does not subscribe to the next observable until the previous completes,
from([your source array])
.pipe(
concatMap(
(item in your array) => {
return this.getPLateInfo.getInfoPlate(....
}
)
)
.subscribe(
(received data from your api call) => {
process received data here...
}
);
импортировать их из:
import { from } from 'rxjs';
import { concatMap } from 'rxjs/operators';
Дополнительная информация о concatMap здесь.
Обновлено:
Вот рабочий стекблиц
Ваша исходная функция «plateInfo» сделает более 1000 вызовов API, надеюсь, вы знаете, что делаете.
В любом случае, мне пришлось ограничить количество элементов в массиве, чтобы сайт stackblitz оставался отзывчивым.
Пожалуйста, приведите пример в stackblitz.com
что ты уже испробовал?