У меня много записей для отправки на сервер. Я сделал это за один вызов, так как сервер принимает любое количество элементов, но на самом деле это не подходит для моей ситуации, поскольку у меня есть тайм-аут на стороне клиента, и количество элементов может расти без каких-либо ограничений. так что это может быть сохранено на сервере, я не получаю ответ, и в следующий раз, когда я вызываю API, количество элементов накапливается ..
Так что я бы хотел обработать это как пакет.
Клиент отправляет 10 элементов, дождитесь ответа сервера. Как только ответ вернется, обработайте его на стороне клиента, затем отправьте еще 10 элементов на сервер и так далее.
Как бы мне этого достичь? PromiseAll (или Уточнить цену) будет запускать запрос параллельно, но то, что я хочу, является последовательным, насколько я понимаю.
Это мой метод тестирования, и он не работает, так как я хотел бы вернуть наблюдаемое, когда все это будет сделано.
private test(data):Observable<any>{
const saveFormInstanceURL = this._networkService.serverUrl + this.SAVE_FORM_INSTANCE_SUFFIX;
let i = 0;
return from([data,data,data,data,data]).pipe(
concatMap(postBody => {
i++;
return this._networkService.post(saveFormInstanceURL,postBody)
})
).subscribe(val => {
console.log('concatMap:', val);
if (i === 4){
console.log('all finished');
return of([]);
}
});
}