次々に実行したい Observables を返す 2 つの関数があります。 function1リターン
Observable<SomeDataObject>
関数2の戻り値の型
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;
})
);
}));