#javascript #rxjs
#javascript #rxjs
Вопрос:
У меня есть следующие rxjs:
let state = true;
iif(
() => this.mode === MODES.CREATE,
this.applicationOrderParcelsRepository.create(data).pipe(switchMap(() => this.egrnService.SendRequestGetEGRP())),
this.applicationOrderParcelsRepository.update(data),
)
.pipe(indicate(this.loading$), observableHandlerResponse(this.messageService))
.subscribe((document) => {
this.changeDetection.detectChanges();
this.dialogRef.close(document);
});
Моя проблема в том, что я хочу выполнить this.egrnService.SendRequestGetEGRP()
только в том случае, если первый запрос выполнен и state = true
. Как это сделать?
Ответ №1:
Вы должны иметь возможность добавить условие к вашему switchMap
, как это:
switchMap(() => {
if (state /* or any other condition */) {
return this.egrnService.SendRequestGetEGRP();
} else {
return EMPTY; // or NEVER; which you should be able to import from 'rxjs' package
}
})