#angular #rxjs #observable
#angular #rxjs #observable
Вопрос:
На данный момент у меня все 3 запроса выполняются параллельно. Теперь мне нужно дождаться завершения первого, прежде чем запускать два других параллельно. Это то, что у меня есть на данный момент:
return Observable
.forkJoin(request1, request2, request3)
.map((successValues: boolean[]) => {
return successValues.every(x => x);
})
.do(success => {
if (success) {
this.store.dispatch({
type: actions.UPDATE_SUCCESS
});
}
});
Ответ №1:
Вы должны использовать switchMap
оператор.
request1.switchMap(response1 => {
Observable
.forkJoin(request2, request3)
.map((successValues: boolean[]) => {
return successValues.every(x => x);
})
.do(success => {
if (success) {
this.store.dispatch({
type: actions.UPDATE_SUCCESS
});
}
}
Комментарии:
1. Привет, Александр, в вашем примере отсутствуют некоторые фигурные скобки, но в остальном все сработало просто замечательно! Спасибо