У меня есть 2 функции, которые возвращают Observables, которые я хотел бы выполнять одну за другой. function1 return
Observable<SomeDataObject>
и function2 тип возвращаемого значения
Observable<Any>
Я хочу, чтобы выполняющая их функция возвращала логическое значение на основе результата function1 . Мне удалось сделать это при первом запуске function1 , но теперь я хотел бы сначала запустить function2 , и я получаю сообщение об ошибке:
"Argument of type '(res: <SomeDataObject>) => boolean' is not assignable to
parameter of type '(value:SomeDataObject, index: number) =>
ObservableInput<any>. Type 'boolean' is not assignable to type
ObservableInput<SomeDataObject>
См. Мой код: Этот работает :
return this.someService.function1().pipe(
switchMap(f1Result =>
{
this.someService.repositpry.f1ResultData = f1Result;
return this.someService.function2().pipe(
map(res =>
{
if (res) return true;
else return false;
}));
})
)
Этот не работает :
return this.someService.function2.pipe(
switchMap(f2Result =>
{
this.someService.function1().pipe(
map(f1result =>
{
this.someService.repositpry.f1ResultData = f1Result;
})
);
if (f2Result) return true
else return false;
}));
Решение:
return this.someService.function2().pipe(
switchMap(f2Result =>
{
return this.someService.function1().pipe(
map((f1result) =>
{
this.someService.repositpry.f1ResultData = f1Result;
if (f2Result) return true
else return false;
})
);
}));