我有 2 个返回 Observables 的函数,我想一个接一个地执行。 函数1返回
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;
})
);
}));