отправить на сервер
events = [{val: 1}, {val:2}, {val:3}]
Текущая реализация была такова
map(events => events.map(e => this.http.post(e))),
switchMap( events => concat(…events)),
map( () => console.log(‘req completed’))
Но мне нужно теперь в зависимости от ответа сервера на какой либо запрос добавлять еще запросы, пушить их в очередь(не в конец, а сразу)
Как это можно реализовать? Спасибо
map(events => { if (!events.length) { return EMPTY; } return this.createRequest(events.shift()).pipe( switchMap(result => { if (result.some) { events.unshift(this.createEvent(result)); } if (!events.length) { return EMPTY; } return this.createRequest(events.shift()); }) ) })
Обсуждают сегодня