Как зациклить несколько запросов HTTP поста в угловых? - PullRequest
0 голосов
/ 03 июня 2018

У меня есть массив объектов, которые должны быть переданы в модель mongoDB, которая принимает один объект за раз, я пытался зациклить запросы HTTP post, но, поскольку он асинхронный, это не работает.Любое другое решение?

for (let entry of ingredients) {
    const body = JSON.stringify(entry);
    console.log(body);
    const headers = new HttpHeaders({'Content-Type': 'application/json'});
    return this.http.post('http://localhost:3000/shopping-list', body, {headers: headers})
        .catch((error: Response) => Observable.throw(error));

}

Спасибо

1 Ответ

0 голосов
/ 03 июня 2018

, если вы хотите делать запросы последовательно, попробуйте concatMap

Observable.from(ingredients)
    .concatMap(entry => this.http.post('http://localhost:3000/shopping-list', entry))
    .subscribe(
        response => console.log(response), //do something with responses
        error => console.error(error), // so something on error
        () => console.info("All requests done") // do something when all requests are done
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...