#httpclient
Вопрос:
Я хочу асинхронно разместить несколько запросов со следующим кодом:
this.http.post (TGT_IP,body,{responseType: 'arraybuffer'}).subscribe
(
(val) =>
{
console.log("POST call successful value returned in body", val);
}
}
},
response => {
console.log("POST call in error", response);
},
() => {
console.log("The POST observable is now completed.");
**//TODO: sort the array**
});
В каждом запросе я сортирую массив. Это работает.
Можно ли дождаться завершения всех запросов, а затем отсортировать массив только один раз ?
Спасибо тебе, Звика
Ответ №1:
Это должна быть просто случайность, которая console.log
срабатывает только после того, как все запросы вернулись (определяется временем отклика сервера). То, что вы делаете, — это генерируете несколько асинхронных обещаний и указываете каждому, что делать, когда оно завершится. Чтобы сделать несколько http-запросов синхронно, вы можете попробовать что-то вроде:
let promises = [];
for(let i = 0; i < 4; i ){
promises.push(this.http.post(TGT_IP,body,{responseType:'arraybuffer'}).toPromise());
}
console.log(Promise.all(promises));
Комментарии:
1. Большое спасибо!